手把手docker命令msyql主从同步--docker学习入门实例

手把手docker命令msyql主从同步–docker学习入门实例

假设现在有192.16.0.88与192.16.0.89两台服务器,我们通过配置88为master,89为slave的主从同步来体验一下docker的使用方法

简单运行mysql容器,并复制容器内mysql配置文件到宿主机

拉取mysql远程镜像(需要一点下载时间)

docker pull mysql

查看已pull到的镜像

docker images

简单运行mysql,用来拷贝mysql镜像内配置文件到宿主机

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root   mysql

命令说明
run 启动docker容器
-d 保持后台运行
–name 指定容器别名
-p 指定端口映射,容器端口:宿主机端口
-e 指定root管理员密码
最后为镜像名

问题排查方法
查看容器进程是否正常运行

docker ps 

如果未找到容器,查看所有运行与未运行的容器进程

docker ps -a 

查看未运行容器日志,排查问题

docker logs mysql

将容器内my.cnf拷贝到宿主机

docker cp mysql:/etc/mysql/my.cnf /home/mysql-etc/

命令说明
容器与宿主机文件互拷
docker cp containerID:container_path host_path
docker cp host_path containerID:container_path

配置主从mysql容器

编辑190.16.0.88宿主机下/home/mysql-etc/my.cnf文件,添加如下内容

[mysqld]
log-bin=mysql-bin 
server-id=88

说明
同样的方式配置190.16.0.89的my.cnf文件,server-id一般ip最后一组

停止之前启动的mysql容器,并移除容器

docker stop mysql 
docker rm mysql

说明
容器rm移除之前必须stop掉或者kill掉

用my.cnf配置文件重新启动一个mysql-master

docker run -d --name mysql-master -p 3306:3306 -v /home/mysql-etc/my.cnf:/etc/mysql/my.cnf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql

说明
这里和上面唯一不同的是多了 -v参数,意思是把容器内的文件映射到宿主机文件 -v 宿主机文件:容器文件

进入mysql-master容器

docker exec -it mysql-master bash

进入mysql设置同步用账户

mysql -uroot 
grant replication slave on *.* to 'sync'@'%' identified by '123456';

查看主服务器状态
show master status;
记下同步日志节点| mysql-bin.000004 | 312 |

相同的方式进入mysql-slave的mysql命令行,并执行以下命令

change master to master_host='192.16.0.88', master_port=3306, master_user='sync',master_password='123456',master_log_file='mysql-bin.000004', master_log_pos=312;
start slave;

查看slave的同步状态

show slave status; 

如果Slave_IO_State = Waiting for master to send event
Slave_IO_RUNING和Slave_SQL_RUNING 都是 YES,标识同步成功
可以在mysql-master库里创建一张表验证一下mysql-slave里有没有成功

总结

通过上面的体验来看,docker的基本使用还是比较好上手的,很多命令类似于Linux中的命令,而且启动速度快,需要注意的是容器如果被rm掉,如果配置不是在用数据卷挂在宿主机上的,就都一起烟消云散了,所以要把修改的容器固化成镜像,官方指导意见是配置尽量挂载数据卷,容器做到无依赖启动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值