简洁
数据库 | 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]