在主库服务器上操作
配置主库:
vi /etc/my.cnf
在[mysqld]节点下添加
log_bin = mysql-bin #必须
server_id = 10 #必须
保存重启
service mysqld restart
在主库上面建立帐户并授权从库
mysql -uroot -pjsyx2016!
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%' IDENTIFIED BY 'hao123';
repl是账号
hao123是密码
检查主库状态
show master status;
----------------------------
在从库服务器上操作
配置从库:
vi /etc/my.cnf
在[mysqld]节点下添加
log_bin = mysql-bin #必须
server_id = 2 #必须
relay_log = /var/lib/mysql/mysql-relay-bin #不是必须
log_slave_updates = 1 #不是必须
read_only = 1 #不是必须
保存重启
service mysqld restart
mysql -uroot -pjsyx2016!
#配置连接主库的参数
CHANGE MASTER TO MASTER_HOST='192.168.1.222',
MASTER_USER='repl',
MASTER_PASSWORD='hao123',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1986;
上面192.168.1.222是主库服务器的ip,MASTER_LOG_FILE的值是主库的File,MASTER_LOG_POS的值是主库的Position
启动从库的复制功能
start slave;
至此主库的数据一有改动,从库就自动更新
检查从库状态
SHOW SLAVE STATUS\G;
注意:执行SHOW SLAVE STATUS\G; 有时会提示错误
Last_SQL_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
主库和备库分别查看uuid是否相同
cat /data/mysql/auto.cnf
相同的话就修改其中一个库的uuid的值
vi /data/mysql/auto.cnf
保存退出,重启即可
service mysqld restart
mysql5.6版本以上规定uuid不能相同,我的环境是在虚拟机里面,从库服务器是通过直接复制主库服务器而来的,所以uuid一样