mysql 一主一从数据同步
docker 启动mysql
== docker 安装mysql时候挂载具名挂在 自己试验出问题 就是挂载目录修改任意一个my.cnf 两个挂载my.cnf都被修改 ==
启动mysql
提前创建好挂载目录
/root/mysqltest/m1
/root/mysqltest/m2
… 多个文件目录
主节点
docker run -p 3306:3306 --name mysql1 --net mynet \
-v /root/mysqltest/m1/log:/var/log/mysql \
-v /root/mysqltest/m1/data:/var/lib/mysql \
-v /root/mysqltest/m1/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
从节点
docker run -p 3305:3306 --name mysql2 --net mynet \
-v /root/mysqltest/m2/log:/var/log/mysql \
-v /root/mysqltest/m2/data:/var/lib/mysql \
-v /root/mysqltest/m2/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
主从数据配置
进入挂载目录创建my.cnf文件
主节点
[mysqld]
# 与从节点不一样
server_id = 1
log-bin= mysql-bin
#读权限
read-only=0
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
从节点
[mysqld]
server_id = 2
log-bin= mysql-bin
read-only=1
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
修改后重启mysql
创建用户同步mysql
- 主从数据需要权限用户用于同步数据
use mysql 数据库执行语句
# 创建用户赋予权限
CREATE USER 'slave'@'%' IDENTIFIED BY 'root'
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by 'root';
查询主节点状态
show master status
记住file,position
- 从节点连接主节点
# 主节点ip change master to master_host='ip',master_user='slave',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=686,master_port=3306;
自己就这样发现数据库是可以主从数据同步 ,其他还要继续学习