docke安装链接 菜鸟教程
mysql的安装链接 mysql安装
安装好mysql之后执行命令查看启动的容器
docker ps
如果按照上述链接执行的则有一个
红色的框中是该容器的名字,上述链接的为 mysql-test
可以用来作为主库,如果需要换名字则删除
docker rm -f mysql-test
重新创建 (记住这个主库的端口是3306)
docker run -itd --name mysql-master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
创建从库 端口映射成3307
docker run -itd --name mysql-slave -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
进入主库
docker exec -it mysql-master env LANG=C.UTF-8 /bin/bash
进入配置的文件夹
cd /etc/mysql
咋们要修改这个my.cnf文件 所以执行vi 命令
但是在这个主库的容器里面没有安装vi的命令,需要安装
分别执行命令
apt-get update
apt-get install vim
完成后执行修改命令
vi my.cnf
加入后面三行的内容
server-id=1
log-bin=mysql-biin
binlong_format=STATEMENT
然后 输入exit 退出
重新启动容器 后面是你主库的容器的名字
docker restart docker-master
#进入容器:env LANG=C.UTF-8 避免容器中显示中文乱码
docker exec -it docker-mysql-master env LANG=C.UTF-8 /bin/bash
#进入容器内的mysql命令行
mysql -uroot -p
#修改默认密码校验方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
-- 创建slave用户
CREATE USER 'slave'@'%';
-- 设置密码
ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
-- 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
最后输入 SHOW MASTER STATUS;
记住这两个值,在从库那边配置需要,也可以另外开一个链接来操作从库
执行从库的命令跟主库的类似
要配置相同的my.cnf文件文件
我这里就从简配置一个id,该id唯一不能与主库的冲突以及其它从库的冲突
配置好后也重启该从库容器
docker stop mysql-slave
docker start mysql-slave
然后登录从库
#进入容器:
docker exec -it mysql-slave env LANG=C.UTF-8 /bin/bash
#进入容器内的mysql命令行
mysql -uroot -p
#修改默认密码校验方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
执行下面命令进行配置 这里需要更换你的虚拟机ip 以及对应自己主机的端口跟最后一行
需要配置成上述主库的那个截图
CHANGE MASTER TO MASTER_HOST='192.168.68.210', MASTER_USER='slave',MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='binlog.000003',MASTER_LOG_POS=1357;
开启功能
START SLAVE;
SHOW SLAVE STATUS\G
-- 查看状态(不需要分号)
执行完命令后会发现
如图两个yes 则表示成功了
若有不是的
则下滑如图展示的
解决办法可以自行百度
或者
-- 在从机停止slave
SLAVE STOP;
-- 在主机查看mater状态
SHOW MASTER STATUS;
-- 在主机刷新日志 FLUSH LOGS;
-- 再次在主机查看mater状态(会发现File和Position发生了变化)
SHOW MASTER STATUS;
-- 修改从机连接主机的SQL,并重新连接即可