docker下安装mysql请参考:
https://blog.youkuaiyun.com/zhangshenglu1/article/details/106037155
现在让我们进入到mysql的容器中:
[root@localhost ~]# docker exec -it mysql5.7 /bin/bash
然后进入到/ect/mysql文件夹中:
root@3f83012c5cab:/etc/mysql# vim my.cnf
bash: vim: command not found
首先执行:
root@f6157231f754:/etc/mysql# apt-get update
Get:1 http://repo.mysql.com/apt/debian buster InRelease [21.5 kB]
Get:2 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:3 http://repo.mysql.com/apt/debian buster/mysql-5.7 amd64 Packages [5685 B]
Get:4 http://deb.debian.org/debian buster InRelease [121 kB]
Get:5 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]
Get:6 http://deb.debian.org/debian buster/main amd64 Packages [7905 kB]
Get:7 http://security.debian.org/debian-security buster/updates/main amd64 Packages [197 kB]
Get:6 http://deb.debian.org/debian buster/main amd64 Packages [7905 kB]
等上面的更新完成再继续执行:
apt-get install vim
这里我们在192.168.3.39安装的mysql 作为主机(master),192.168.3.42上的安装的myql作为从机(slave。
一、主机上的配置:
1、通过docker exec -it mysql5.7 进入到容器内部,然后修改对应配置文件。
[root@localhost etc]# docker exec -it mysql5.7 /bin/bash
root@f6157231f754:/# vim /etc/mysql/my.cnf
[mysqld] ## 同一局域网内注意要唯一
server-id=100
#开启二进制日志功能,可以随便取
log-bin=mysql-bin
2、退出容器
root@f6157231f754:/etc/mysql# exit
3、重启mysql容器
[root@localhost etc]# docker stop mysql5.7
mysql5.7
[root@localhost etc]# docker start mysql5.7
mysql5.7
4、使用客户端连接主机,然后授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
二、从机上的配置
1、跟主机一样,将从机中配置文件中添加如下配置:
[mysqld]
## 设置server_id,注意要唯一
server-id=101
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
2、重启mysql 容器
[root@localhost etc]# docker stop mysql5.7
mysql5.7
[root@localhost etc]# docker start mysql5.7
mysql5.7
三、连接Master和slave(从机)
1、在slave上执行如下sql:
CHANGE MASTER TO MASTER_HOST = '192.168.3.39',
MASTER_USER = 'slave',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 609,
MASTER_CONNECT_RETRY = 30 ;
2、开启复制状态
START SLAVE;
3、查看slave的状态
SHOW SLAVE STATUS ;
四、测试是否成功
1、在主机上执行创建数据的操作:
CREATE DATABASE testdb;
2、查看从机中是否新增了一个名为 testdb的数据库