一、在master上创建复制帐号
登陆主数据库执行以下语句
mysql> grant replication slave on *.* to 'xiaoming'@'%' identified by 'password';
二、配置master,开启binlog
vim /etc/my.cnf
将以下内容添加到my.cnf
#开启二进制日志
log-bin=mysql-bin
#设置唯一id
server-id=129
重启 systemctl restart mysqld
三、配置slave
vim /etc/my.cnf
#设置唯一id
server-id=130
登陆从数据库执行以下语句
mysql> change master to master_host='192.168.23.129', master_user='xiaoming',master_password='xiaoming',master_log_file='mysql-bin.000001',master_log_pos=310;
四、启动slave
mysql> start slave ;
mysql> SHOW SLAVE STATUS\G
显示两个yes表示配置成功
四、常见坑
原因一:
如果安装了一台linux 又克隆了两台,一主两从 , 关键点就在于我是克隆的,才导致了报Slave_IO_Running: NO
原因:mysql 有个uuid , 然而uuid 是唯一标识的,所以我克隆过来的uuid是一样的,只需要修改一下uuid 就ok了,找到auto.cnf 文件修改uuid。auto.cnf文件一般在 /var/lib/mysql/auto.cnf , 如果没有那就用linux 查询命令找:find -name auto.cnf
原因二
原因: 首先确认server-id 是否唯一, mysql 有可能并没有加载my.cnf 文件中的server-id
解决办法:
修改server-id (在my.cnf 文件中)
查看mysql> show variables like ‘server_id’;