Mysql主从复制

  1. 简洁
  2. Master 主服务器配置
  3. Salve 从服务器配置

简洁

数据库 Docker容器
MySQL Master master_mysql57
MySQL Slave slave_mysql57

参考文章
Docker搭建mysql5.7
Mysql配置项常用查询

Master 主服务器配置

# 修改主服务器 my.cnf 配置
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin       # bin日志文件名
server-id=10001         # 服务ID,不能和从服务器重复
binlog_format=row       # 数据同步模式: STATEMENT、ROW、MIXED(混合模式) ------ 待确定
binlog-do-db=testdb     # 设置同步指定的数据库
binlog-ignore-db=mysql  # 设置忽略同步的库
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

# 登录Mysql  root:mysql123456
mysql -u root -p 

# 查询数据库
mysql> show databases;

# 进入mysql库
mysql> use mysql;

# 创建用户并授权
mysql> create user 'salve'@'%' identified by '5Dnw3RkWk8xhbsER';    # 创建用户
mysql> grant replication slave on *.* to 'salve'@'%';    # 授权
mysql> flush privileges;   # 刷新权限

# # 授权salve用户操作testdb(select,insert,update,delete)
mysql> grant select,insert,update,delete on 'testdb'.* to 'salve'@'%';

# 创建错了,可以使用下面命令删除
mysql> drop user "salve"@"%";

# 查看添加的用户信息
mysql> select user,host from mysql.user;

# 测试刚创建的用户是否正常
mysql> mysql -u salve -p -h 192.168.2.228 -P 3306

# 锁表,禁止写入,当前窗口不能退出,这时候开启另一个终端继续操作
mysql> flush tables with read lock;

# 查看master状态, 不管执行什么命令,\G后不用加分号, 否则提示No query specified 错误
mysql> show master status \G

# 取消锁表
mysql> unlock tables;

Salve 从服务器配置

# 修改主服务器 my.cnf 配置
vim /etc/my.cnf
[mysqld]
log-bin=slave-bin       # 开启二进制日志
server-id=50001         # 服务ID,不能和从服务器重复
read_only=ON            # 设置从数据库只读(对root用户无效)
relay_log=relay-log     # relay log的文件路径
relay_log_index=relay-log.index # 默认值hostname-relay-bin.index

replicate_do_db=testdb
replicate_ignore_db=information_schema
replicate_ignore_db=performance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys

# 重启Mysql服务

# 登录Mysql  root:mysql123456
mysql -u root -p 

# 查看 server_id
mysql> show variables like 'server_id';

# 配置从数据库 host最好设置IP或者容器名称
mysql> change master to master_host='master_mysql57',master_user='salve',master_password='5Dnw3RkWk8xhbsER',master_log_file='mysql-bin.000001',master_log_pos=154;

# 启动主从同步进程
mysql> start slave;

# 检查状态
mysql> show slave status \G

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]

×

喜欢就点赞,疼爱就打赏