使用docker进行mysql部署
创建挂载目录
#创建挂载目录 mkdir -p /data/mysql/data; mkdir -p /data/mysql/conf;
创建yml文件
vim /data/mysql/docker-compose.yml
填入配置
version: '3' services: mysql: image: mysql:5.7 #mysql版本 container_name: mysql volumes: - /data/mysql/data:/var/lib/mysql - /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf restart: always ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: 123456 #root用户密码 TZ: Asia/Shanghai command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
创建配置文件
vim /data/mysql/conf/my.cnf
[mysqld] default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎 character-set-server=utf8mb4 # 设置mysql服务端默认字符集 pid-file = /var/run/mysqld/mysqld.pid # pid文件所在目录 socket = /var/run/mysqld/mysqld.sock # 用于本地连接的socket套接字 datadir = /var/lib/mysql # 数据文件存放的目录 symbolic-links=0 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 定义mysql应该支持的sql语法,数据校验等! # 允许最大连接数 max_connections=200 # 同一局域网内注意要唯一 server-id=3306 # 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql` #log-bin=mysql-bin log-bin=/var/lib/mysql/mysql-bin # binlog格式 # 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错; # 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式; # 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多; binlog_format=ROW # FULL:binlog记录每一行的完整变更 MINIMAL:只记录影响后的行 binlog_row_image=FULL # 日志文件大小 max_binlog_size=100M # 定义清除过期日志的时间(这里设置为7天) expire_logs_days=7 # ================= ↑↑↑ mysql主从同步配置end ↑↑↑ ================= [mysql] default-character-set=utf8mb4 [client] default-character-set=utf8mb4 # 设置mysql客户端默认字符集
到对应目录下启动容器
cd /data/mysql docker-compose up -d
记得防火墙开端口号 3306 !!!
一定要记得换端口和复杂密码
1|0开防火墙端口号3306
使用 firewalld(CentOS 7 及以上)
1. 检查 firewalld 服务状态
首先要确保 firewalld
服务正在运行,如果未运行,需要启动该服务。
# 检查服务状态 systemctl status firewalld # 如果未运行,使用以下命令启动 systemctl start firewalld # 设置开机自启 systemctl enable firewalld
2. 开放 3306 端口
使用 firewall-cmd
命令开放 3306 端口,有临时开放和永久开放两种方式。
- 临时开放:只在当前系统运行期间生效,重启系统后设置会失效。
firewall-cmd --zone=public --add-port=3306/tcp
- 永久开放:设置会在系统重启后仍然生效。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3. 重新加载防火墙规则
如果使用了 --permanent
参数,需要重新加载防火墙规则使设置生效。
firewall-cmd --reload
4. 验证端口是否开放
可以使用以下命令查看 3306 端口是否已经开放。
firewall-cmd --zone=public --query-port=3306/tcp
__EOF__

本文作者:techgy
本文链接:https://www.cnblogs.com/techgy/p/18715923.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/techgy/p/18715923.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)