主服务器配置
[mysqld]
## 唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
从服务器配置
[mysqld]
## 唯一(不要与主的重复了)
server-id=101
## 跳过密码验证
skip-grant-tables=1
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
## 指定只同步某个库
replicate-do-db=databaseName
## 如果指定多个库
replicate-do-db=databaseName2
## 指定只同步某个表
replicate-do-table=databaseName.tableName
## 如果指定多个表
replicate-do-table=databaseName.tableName2
## 取消同步某个库
replicate-ignore-db=mysql
# 忽略错误
# slave_skip_errors = 1032,1062
# slave_skip_errors = 1032
配置主从
- 主服务器配置
# 主服务器创建从服务器用户
CREATE USER 'slave'@'%' IDENTIFIED BY 'password';
# 授权从服务器用户权限
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
- 从服务器配置
change master to master_host='IP', master_user='slave', master_password='password', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 1, master_connect_retry=30;
其他命令
# 开启主从(从服务器执行)
start slave;
# 检查从服务状态(从服务器执行)
show slave status \G;
# 停止主从(从服务器执行)
stop slave;
# 重置主从(从服务器执行)
reset slave all;
# 检查从服务状态(主服务器执行)
show mater status \G;
# 其他可能的命令
show variables like '%max_allowed_packet%';
set global server_id=1000