网上部署mysql的教程很多,但是关于最新版mysql8.4.0的资料还是比较少的。所以我就做了这篇教程,提升一下熟练度,也供大家参考一下。这篇教程非常适合手残党,只要跟着步骤走,复制即可实现。
开发软件:VMware+FinalShell
1.docker创建mysql容器
主服务器3306端口
sudo docker run -d --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -v /opt/mysql_data_master:/var/lib/mysql -v /opt/mysql_conf_master:/etc/mysql/conf.d -p 3306:3306 mysql:8.4.0
从服务器3307端口
sudo docker run -d --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -v /opt/mysql_data_slave:/var/lib/mysql -v /opt/mysql_conf_slave:/etc/mysql/conf.d -p 3307:3306 mysql:8.4.0
关闭防火墙(一定要执行,防止Replica_IO_Running为No的现象)
#关闭防火墙
systemctl stop firewalld
#查看防火墙状态
systemctl status firewalld
执行效果:
参数说明:
-p 3306:3306: 这个选项将容器的3306端口映射到主机的3306端口。这样,你可以通过主机的3306端口访问MySQL容器
-v /opt/mysql_data_master:/var/lib/mysql: 这个选项指定了一个数据卷的映射。将主机的/opt/mysql_data_master目录映射到容器的/var/lib/mysql目录,这样MySQL的数据文件将会存储在主机上,以便持久化保存。
-v /opt/mysql_conf_master:/etc/mysql/conf.d: 这个选项指定了另一个数据卷的映射。将主机的/opt/mysql_conf_master目录映射到容器的/etc/mysql/conf.d目录,这样你可以在主机上配置MySQL的配置文件。
注:此处引自参考资料第一条
检查mysql容器是否创建成功
docker ps
2.修改配置
由于启动容器的时候做了做了数据和配置的挂载,因此只需在本地/opt/mysql_conf_master修改配置即可映射到容器内部
a.用文本编辑器进行配置
#切换到本地主库配置目录
cd /opt/mysql_conf_master
#创建并修改配置文件
vim my.cnf
#输入i,进入插入模式
#建议在第三至第四行将下列配置复制进去
#建议后期再删除不需要的配置
#主库配置
[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数
max_connect_errors=10
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
#开启查询缓存
explicit_defaults_for_timestamp=true
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#等待超时时间秒