1:保证两台服务器互通
vi /etc/hosts
将主机,备机的IP地址加入到/etc/hosts
2: 创建主备连接用户
mysql> create user 'slave'@'%' identified with mysql_native_password by 'oracle';
Query OK, 0 rows affected (0.01 sec)
grant replication slave on *.* to 'slave'@'%';
主从原理
3:修改主备参数
vim /etc/mysql/mysql.conf.d/mysqld.cnf
主库:
server-id=100
log_bin=mysql-bin
log_bin=/var/lib/mysql/binlog
max_connections = 3000
备库
server-id=102
log-bin=mysql-slave-bin
relay_log=edu-mysql-relay-bin
slave_skip_errors=1062
log_bin=/var/lib/mysql/binlog
查看主库日志位置(修改log_bin位置)
根据信息修改
change master to master_host='10.0.0.166' ,master_user='slave',master_password='oracle',master_log_file='binlog.000324',master_log_pos=157;
最好成功
4:解决报错
启动备库报错
ERROR 1872 (HY000): Slave failed to initialize relay log info st ructure from the repository
解决: reset slave;
同步异常:
查看同步用户权限
mysql> show grants for 'slave'@'%';
+-----------------------------------+
| Grants for slave@% |
+-----------------------------------+
| GRANT USAGE ON *.* TO `slave`@`%` |
+-----------------------------------+
1 row in set (0.00 sec)
mysql> desc mysql.user;
+--------------------------+-----------------------------------+--- ---