时间:2021-07-01 10:21:17 帮助过:16人阅读
二、docker搭建实操
1、拉取docker mysql:5.7的镜像
- docker pull mysql:<span style="color: #800080;">5.7</span>
2、查看镜像
- docker images
3、启动容器与查看(这里我用3339和3340端口分别主从)
- docker run -itd --name=mysql-<span style="color: #800080;">5.7</span>-master -p <span style="color: #800080;">3339</span>:<span style="color: #800080;">3306</span> -e MYSQL_ROOT_PASSWORD=<span style="color: #800080;">123456</span> mysql:<span style="color: #800080;">5.7</span><span style="color: #000000;">
- docker run </span>-itd --name=mysql-<span style="color: #800080;">5.7</span>-slave -p <span style="color: #800080;">3340</span>:<span style="color: #800080;">3306</span> -e MYSQL_ROOT_PASSWORD=<span style="color: #800080;">123456</span> mysql:<span style="color: #800080;">5.7<br><img alt="技术图片" src="https://img.gxlcms.com//Uploads-s/new/2020-10-08-qlqqti/20200626164011738800.png" loading="lazy"></span>
4、容器安装vim
- 依次执行<br> apt-<span style="color: #0000ff;">get</span><span style="color: #000000;"> update
- apt</span>-<span style="color: #0000ff;">get</span> install vim
5、主从搭建配置
1) 配置master服务器:
- docker exec -it mysql-<span style="color: #800080;">5.7</span>-<span style="color: #000000;">master
- vim </span>/etc/mysql/<span style="color: #000000;">my.cnf 加入以下配置
- [mysqld]
- ## 同一局域网内注意要唯一
- server</span>-id=<span style="color: #800080;">100</span><span style="color: #000000;">
- ## 开启二进制日志功能,可以随便取(关键)
- log</span>-bin=mysql-bin
service mysql restart重启数据库,使配置生效,并重新启动容器:docker start mysql-5.7-master
- <span style="color: #000000;">再进入master:
- 创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。
- CREATE USER </span><span style="color: #800000;">‘</span><span style="color: #800000;">slave</span><span style="color: #800000;">‘</span>@<span style="color: #800000;">‘</span><span style="color: #800000;">%</span><span style="color: #800000;">‘</span> IDENTIFIED BY <span style="color: #800000;">‘</span><span style="color: #800000;">123456</span><span style="color: #800000;">‘</span><span style="color: #000000;">;
- GRANT REPLICATION SLAVE, REPLICATION CLIENT ON </span>*.* TO <span style="color: #800000;">‘</span><span style="color: #800000;">slave</span><span style="color: #800000;">‘</span>@<span style="color: #800000;">‘</span><span style="color: #800000;">%</span>
2) 配置master服务器:
- docker exec -it mysql-<span style="color: #800080;">5.7</span>-slave /bin/<span style="color: #000000;">bash
- vim </span>/etc/mysql/<span style="color: #000000;">my.cnf
- ## 设置server_id,注意要唯一
- server</span>-id=<span style="color: #800080;">101</span><span style="color: #000000;">
- ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
- log</span>-bin=mysql-slave-<span style="color: #000000;">bin
- ## relay_log配置中继日志
- relay_log</span>=edu-mysql-relay-bin
service mysql restart重启数据库,使配置生效,并重新启动容器:docker start mysql-5.7-slave
3) 连接Master和Slave
master: 进入master容器
- mysql -uroot -<span style="color: #000000;">p123456
- show masterstatus;</span>
slave:进入slave
- change master to master_host=<span style="color: #800000;">‘</span><span style="color: #800000;">172.17.0.2</span><span style="color: #800000;">‘</span>, master_user=<span style="color: #800000;">‘</span><span style="color: #800000;">slave</span><span style="color: #800000;">‘</span>, master_password=<span style="color: #800000;">‘</span><span style="color: #800000;">123456</span><span style="color: #800000;">‘</span>, master_port=<span style="color: #800080;">3306</span>, master_log_file=<span style="color: #800000;">‘</span><span style="color: #800000;">mysql-bin.000001</span><span style="color: #800000;">‘</span>, master_log_pos=<span style="color: #800080;">0</span>;
在Slave 中的mysql终端执行:show slave status \G;用于查看主从同步状态。
正常情况下,SlaveIORunning 和 SlaveSQLRunning 都是No,因为我们还没有开启主从复制过程。使用start slave开启主从复制过程,然后再次查询主从同步状态show slave status \G;。
如果错误出现:
切换主库,show master status;
从库切换master_log_pos= 主库上面Position的值改为0;
- change master to master_host=<span style="color: #800000;">‘</span><span style="color: #800000;">172.17.0.2</span><span style="color: #800000;">‘</span>, master_user=<span style="color: #800000;">‘</span><span style="color: #800000;">slave</span><span style="color: #800000;">‘</span>, master_password=<span style="color: #800000;">‘</span><span style="color: #800000;">123456</span><span style="color: #800000;">‘</span>, master_port=<span style="color: #800080;">3306</span>, master_log_file=<span style="color: #800000;">‘</span><span style="color: #800000;">mysql-bin.000001</span><span style="color: #800000;">‘</span>, master_log_pos=<span style="color: #800080;">0</span><span style="color: #000000;">;
- 然后:<br>start slave
- show slave status \G;</span>
4) 验证主从:
docker mysql5.7主从复制搭建
标签:终端 user 创建 p12 搭建配置 create font 数据库 vim