本文介绍的是Mysql的主从备份配置
环境介绍
系统:centOS 7 64位
master: 10.10.40.20
slave: 10.10.40.63
两台机器都已装好mysql,并创建好了数据库
master 配置
1. 登录mysql
mysql -uroot -p
2. 新建备份账号并授权
mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.10.40.%' IDENTIFIED BY 'mysql';
mysql>FLUSH PRIVILEGES;
3. 修改mysql配置
vim /etc/my.cnf
server-id = 2 #服务器唯一标识,直接使用IP末尾
log_bin = master-bin #启动二进制日志
log_bin_index = master-bin.index
binlog_do_db = newcsxy #指定记录二进制日志的数据库
binlog_ignore_db= mysql #指定不记录二进制日志的数据库
4. 重启服务
service mysqld restart
5. 登录mysql查看master状态
mysql -u root -p
mysql>show master status;
slave配置
1. 修改mysql配置
vim /etc/my.cnf
server-id = 127
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
2. 重启mysql服务
service mysqld restart
3. 登录mysql,连接master
mysql>change master to master_host='10.10.40.20',
master_port=3306,master_user='repl',
master_password='mysql',
master_log_file='master-bin.000001',master_log_pos=154;
NOTE:
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;
slave_io_running和slave_sql_running都为yes,就说明配置成功了
问题
- MySQL错误处理--1146错误
解决办法:
在从服务器上设置忽略该错,在my.cnf文件中添加
slave-skip-errors = 1146
,
如果少量的这种错误,直接在mysql client里面设置set global sql_slave_skip_counter=1
;