mysql主从配置

主服务器配置

[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

配置主从

  1. 主服务器配置
# 主服务器创建从服务器用户
CREATE USER 'slave'@'%' IDENTIFIED BY 'password';
# 授权从服务器用户权限
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
  1. 从服务器配置
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