主从分别创建相同用户: mysql> grant all on *.* to 'li'@'192.168.1.%' identified by '123456'; Query OK, 0 rows affected (0.00 sec) 设置server-id: vi /etc/my.cnf [mysqld]节点 主服务器添加:(MySQL 8不允许server-id=0) server-id=1 从服务器添加: server-id=2 read-only 设置read-only的话无"super(管理)权限"的用户将无权写入数据 主从服务器开启二进制日志: mysql> show variables like '%log_bin%'; vi /etc/my.cnf [mysqld]节点 log-bin=mysql-bin service mysqld restart 主服务器查看binlog信息: mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 106 | | | +------------------+----------+--------------+------------------+ slave服务器更改设置: mysql> change master to master_host='192.168.10.130', master_user='user', master_password='password', master_port=3306, master_log_file='上面查到的file', master_log_pos=上面查到的Position; 启动slave同步进程: mysql> start slave; slave服务器状态检查: mysql> show slave status \G; 其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。 如果出现: Last_IO_Error: Got fatal error 1236 from master when reading data from binary log 可能是msater_log配置错误 同步错误之后跳过错误: 1.跳过指定数量的事务: mysql> slave stop; mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; #跳过一个事务 mysql> slave start; 2.修改mysql的配置文件,通过slave_skip_errors参数来跳所有错误或指定类型的错误 vi /etc/my.cnf [mysqld] #slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误 #slave-skip-errors=all #跳过所有错误 在主服务器库中增加数据,检查从服务器是否正常同步。