一、主库从库设计
- 主库:本地mysql,ip:192.169.10.11,端口号:3306
- 从库:docker容器下mysql,端口号:3307
二、修改配置
- 修改主库my.ini配置,添加如下内容:
1 2 3 4 5 6 |
[mysqld] log-bin=mysql-bin #启用二进制日志 replicate-ignore-db=mysql replicate-ignore-db=sys replicate-ignore-db=information_schema |
- 新建my.cnf,加入上面配置,拷贝到docker mysql容器中
1 2 |
docker cp ~/my.cnf abbbcb8992ee90d6ba:/etc/mysql/conf.d/my.cnf |
三、查看服务状态
- 重启主库查看状态
1 |
show master status; |
- 重启容器查看从库(slave)状态
1 |
show slave status; |
四、在主库上授权:允许用户对主库有复制权限
1 2 3 4 5 6 |
# 在主库创建从库复制使用的用户 CREATE USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # 用户授权 grant replication slave on *.* to 用户名@"服务器地址" identified by "密码"; # 权限刷新 flush privileges; |
五、创建数据库、用户
- 在主库中创建用户
- 使用刚刚创建的用户账号在从库中连接测试
六、在从库中配置主库链接,并开启slave服务
注意:主从数据库数据先要保持一直
1 2 3 4 |
stop slave; change master to master_host='192.168.10.11',master_user='thinkphp6_user',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=4583,master_port=3306; start slave; show slave status\G; |
注:master_log_file
对应show master status;
中的File,master_log_pos
对应Position;