主从同步:一台服务器上安装,docker 安装多个数据库进行实现
1.拉取mysql5.7的镜像
docker pull mysql:5.7
2.启动两个mysql容器,一个作为master,一个作为slave
master节点,将本地的 3347端口映射到容器的3306端口,密码为123456
docker run -itd --name mysql-master -p 3347:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
slave节点,将本地的 3348端口映射到容器的3306端口,密码为123456
docker run -itd --name mysql-slave -p 3348:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
3.navicat连接master数据库,并执行如下命令:
在主数据库上执行这两条命令:(目的增加一个同步账号)
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY 'backup';
SHOW GRANTS FOR 'backup'@'%';
4.修改配置文件
a.进入master节点下:
docker exec -it mysql-master /bin/bash
b.修改master主数据库的配置文件,/etc/mysql/my.cnf
容器内没有vim,需要下载vim命令
apt-get update && apt-get install vim -y
也可以通过另外一种方式对my.cnf进行修改
echo -e "[mysqld]\nserver-id=100\nlog-bin=mysql-bin" >> /etc/mysql/conf.d/mysql.cnf
master配置文件修改完成,
c.修改slave从数据库的配置文件
进入到slave节点下:
docker exec -it mysql-slave /bin/bash
修改配置文件:
echo -e "[mysqld]\nserver-id=101\nlog-bin=mysql-bin" >> /etc/mysql/conf.d/mysql.cnf
5.重启主从数据库
docker restart mysql-slave
docker restart mysql-master
6.用navicat连接slave数据库
执行如下命令:
change master to master_host='自己的主服务器的ip',
master_user='backup',
master_password='backup',
master_port=3347;
开启主从复制
start slave
查看状态
show slave status
查看
slave_IO_Running
slave_SQL_Running
的状态
主从复制已经开启了
7.验证
在master上新建一个数据库,并在这个库下建一张表。看在slave上是否存在
master新建数据库test_database_12,并在库下边创建表student
slave
至此我们的主从MySQL集群架构已经搭建完毕了
mysql 数据库性能提升,分表分区