mysql 主从设置

本文详细介绍了如何在Docker环境下配置MySQL主从复制,包括主库my.cnf配置、从库my.cnf配置、权限设置、主从同步以及错误排查。重点讨论了账号授权、日志文件定位、错误处理和同步状态检查等关键步骤,旨在帮助读者解决实际操作中的问题。
摘要由CSDN通过智能技术生成
docker run -p 3310:3306 --name mysql-master  -v /data/mysql2/master/log:/var/log/mysql -v /data/mysql2/master/data:/var/lib/mysql/ -v /data/mysql2/master/conf:/etc/mysql/conf.d -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=root.123 -d mysql:5.7

docker run -p 3311:3306 --name mysql-slaver-01  -v /data/mysql2/slaver1/log:/var/log/mysql -v /data/mysql2/slaver1/data:/var/lib/mysql/ -v /data/mysql2/slaver1/conf:/etc/mysql/conf.d -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=root.123 -d mysql:5.7

 

###1、主Mysql的my.cnf


[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

server_id=1
log-bin=mysql_bin
read-only=0
###要同步的数据库
binlog-do-db=db1
binlog-do-db=db2
binlog-do-db=db3
binlog-do-db=db4
binlog-do-db=db5

###不同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema



###2、从mysql的my.cnf

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

server_id=2
#log-bin=mysql_bin
read-only=0
###3、主Mysql配置一个账号给从数据库同步用

GRANT ALL PRIVILEGES ON *.* TO 'backup'@'192.168.%'IDENTIFIED BY 'com.123' WITH GRANT OPTION;
FLUSH   PRIVILEGES;
###4、配置从mysql的主mysql信息

CHANGE MASTER to MASTER_HOST='192.168.3.91', MASTER_USER='backup', MASTER_PASSWORD='com.123', MASTER_LOG_FILE='mysql_bin.000001', MASTER_LOG_POS=567, master_port=3310;

###5、开始同步,停止同步
start slave

stop slave
###查看连接状态
show slave status;

###如果Slave_IO_Running和Slave_SQL_Running 都是Yes,说明连接成功,可以同步了

###如果Slave_IO_Running是connecting, 说明账号连接未成功。

###[ERROR] Slave I/O for channel '': error connecting to master 'backup@192.168.3.91:3310' - retry-time: 60  retries: 7, Error_code: 1045

###一是检查账号密码是否正确.如果都没问题,那可能就是授权时ip段的问题,修改授权语句

###由于我是用docker搭建,所以可能存在ip段的问题

GRANT ALL PRIVILEGES ON *.* TO 'backup'@'%'IDENTIFIED BY 'com.123' WITH GRANT OPTION;
FLUSH   PRIVILEGES;
### 同步错误
[ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql_bin.000001' position 1013.


### 清空主从信息,重新设置
STOP SLAVE IO_THREAD FOR CHANNEL '';
RESET SLAVE ALL;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值