主数据库配置
[mysqld] log-bin=mysql-bin #开启二进制日志 server-id=1
从数据库配置
[mysqld] server-id=2
主数据库建立复制用户
mysql> CREATE USER 'repl'@'123.57.44.85' IDENTIFIED BY 'repl123';#创建用户 mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85';#分配权限 mysql>flush privileges; #刷新权限
查看主库的位置和bin-log文件名
mysql > SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 73 | test | manual,mysql | +------------------+----------+--------------+------------------+
从库操作
CHANGE MASTER TO MASTER_HOST='123.57.44.85', MASTER_USER='repl',MASTER_PASSWORD='repl123', MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=73;
启动从库
start slave;
查看slave状态
show slave status;
如果出现slave执行sql错误
可以跳过一个事务
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务
mysql>slave start
修改mysql的配置文件,通过slave_skip_errors参数来跳所有错误或指定类型的错误
vi /etc/my.cnf
[mysqld]
#slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误
#slave-skip-errors=all #跳过所有错误