#进入容器内部 docker-compose exec mysql-master bash #输入用户密码 mysql -u root -p #为了避免从服务复制出现权限不足的情况需要执行 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # 查看状态 SHOW MASTER STATUS;
如上图所示,需要记下 File 和 Position 的值。
如不配置ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
会出现 如下错误 GRANT ALL PRIVILEGES ON . TO 'root'@'192.168.3.150' IDENTIFIED BY '123456'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '123456'' at line 1
配置从服务器复制
在从服务器下执行,进入容器
#进入容器 docker-compose exec mysql-slave bash #输入用户密码 mysql -u root -p #配置从服务器复制 CHANGE MASTER TO MASTER_HOST='192.168.3.150', MASTER_USER='root', MASTER_PASSWORD='123456',MASTER_PORT=3001, MASTER_LOG_FILE='master1-bin.000003', MASTER_LOG_POS=478;
注意
MASTER_HOST='192.168.3.150': 如果在同一个docker 环境下,可以替换成主容器名称,即mysql-master MASTER_PORT=3001:如果不指定端口默认端口为3306。 MASTER_LOG_FILE='master1-bin.000003', MASTER_LOG_POS=478; 必须指定主服务器的File 和 Position 值。