1.搜索并下载mysql镜像
- docker search mysql
- docker pull mysql
2.运行一个mysql容器,并在宿主机创建一个文件夹存储mysql数据。
- docker run -it -d -p 3306:3306 --name master-v /docker/mysql/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
3.进入容器里面的mysql:
- mysql -uroot -p
- 输入设置的密码:123456
- grant all privileges on *.* to 'root'@'%' with grant option; 远程root登陆密码为root
- FLUSH PRIVILEGES;
4.*报错1:Authentication plugin 'caching_sha2_password' cannot be loaded ##相关网址 https://www.itency.com/topic/show.do?id=486709
解决:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; ##新加用户为root密码为root
5.*报错2:解决mysql"Access denied for user'root'@'IP地址'"问题
解决:grant all privileges on *.* to 'root'@'%' with grant option;
FLUSH PRIVILEGES;
6.mysql主从复制,首先是在my.cnf增加,或者自己初始化一个my.cnf映射进去容器里面
- log-bin=mysql-bin
- server-id=1
- binlog-do-db=test
7.手动修改后,需要重启容器.docker restart master
- 进入主机容器:docker exec -it master /bin/bash
- 进入mysql命令:mysql -uroot -p 输入密码123456
- 查看主机 :
8.进入从机,再起一个slave的容器
- 其他操作一样,修改一下:server-id=2
- change master to master_host='172.17.0.6',master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=3605,master_port=3306; #你可以自己在创建一个账号,专门是用来做同步的。我这里就使用root账号
- 查看一下是否成功
9.这样主从复制也就弄完了。