所以我在两个不同的 MySQL 服务器上设置了我的初始主从复制对。那部分工作得很好。所以我所要做的就是将第一个 master 设置为 slave,并将第一个 slave 设置为第二个 master,对吗?
错误的!
这就是我尝试在辅助主服务器上创建第二个从属帐户时发生的情况:
mysql> grant replication slave on *.* to 'repslave2'@'ourhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> start master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1
什么?你是什么意思,“语法错误”?这是很简单的东西。我拼写“主人”是对的。它可以在另一台服务器上运行,而无需安装任何特殊的东西。"stop slave" 和 "start slave" 像在这台服务器上宣传的那样工作。为什么它不起作用?
编辑添加:
我想我已经找到了问题的一部分——主从复制在两台服务器之间混淆了。在这里,我尝试在主主节点上停止主节点:
mysql> stop master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> stop master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1
mysql> start master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1
mysql> start slave;
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO
您必须首先在新主服务器上定义主服务器设置,然后在您发送启动主服务器之前停止您希望成为主服务器的服务器上的从服务器;命令。
可能不是您想要的答案,但它是正确的。
更好地了解您正在尝试做的事情会有所帮助。
试试
start slave
。每个主服务器应该是另一个主服务器的从服务器,不要忘记
server-id
在每个服务器上配置不同my.cnf
。还要正确设置
auto_increment_increment
并auto_increment_offset
避免重复的主键破坏复制。在正确配置每台服务器后检查
show slave status
ifSlave_IO_Running
和Slave_SQL_Running
are状态。yes
配置后键入此命令 START SLAVE IO_THREAD