mysql一主二从 配置

一、master配置

如,有三台服务器,分别为,192.168.1.2,192.168.1.5,192.168.1.9

1. 登录mysql

mysql -uroot -p

2. 新建备份账号并授权

mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY 'mysql';

mysql>FLUSH PRIVILEGES;

3. 修改mysql配置

vim /etc/my.cnf

mysql一主二从 配置

server-id = #服务器唯一标识,直接使用IP末尾

log_bin = master-bin  #启动二进制日志

log_bin_index = master-bin.index

binlog_do_db = #指定记录二进制日志的数据库

binlog_ignore_db= mysql  #指定不记录二进制日志的数据库

4. 重启服务

cd /usr/local/mysql/support-files

./mysql.server restart

5. 登录mysql查看master状态

mysql>show master status;

mysql一主二从 配置

二、slave配置

slave1和slave2都要进行如下配置,差别仅是mysql配置中的server-id,分别为各自的IP结尾

1. 修改mysql配置

vim /etc/my.cnf

server-id = 5

relay-log = slave-relay-bin

relay-log-index = slave-relay-bin.index

replicate-do-db 要同步的数据库

replicata-ignore-db 忽略不同步的数据库

mysql一主二从 配置

2. 重启服务

cd /usr/local/mysql/support-files

./mysql.server restart

3. 登录mysql,连接master

mysql>change master to master_host='192.168.1.2,master_port=3306,master_user=slave,master_password='mysql',master_log_file='master-bin.000002',master_log_pos=154;

master_host:master的IP

master_port:master的端口

master_user:步骤一中创建的复制账号

master_password:复制账号的密码

master_log_file和master_log_pos:对应步骤一最后查看的master状态值

4. 启动slave同步

mysql>start slave;

5. 查看slave状态

mysql>show slave status\G;

mysql一主二从 配置

slave_io_running和slave_sql_running都为yes,就说明配置成功了;

可以在主库里insert一条数据,再去从库看看是否有该数据。如果有则配置成功!

备注:

从库的数据库最好在初始化的时候和主库保持数据一致。以免后续出现错误。

解决方法:

备库中执行如下SQL脚本

STOP SLAVE; 

SET GLOBAL sql_slave_skip_counter =1; #表示跳过一步错误,后面的数字可变 

START SLAVE;