因此,我在两个不同的 MySQL 服务器上设置了初始主从复制对。这部分工作正常。所以我所要做的就是将第一个主服务器设置为从服务器,将第一个从服务器设置为第二个主服务器,对吗?
错误的!
当我尝试在辅助主服务器上创建第二个从属帐户时发生的情况如下:
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
什么?你是什么意思,“语法错误”?这很简单。我拼对了“master”。它在另一台服务器上运行,无需安装任何特殊程序。“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
答案1
您必须首先在新的主服务器上定义主服务器设置,然后在发送启动主服务器;命令之前停止您希望成为主服务器的服务器上的从服务器。
可能不是您想要的答案,但它是正确的。
更好地理解您正在做的事情将会很有帮助。
答案2
尝试start slave
。
每个主服务器都应该是另一个主服务器的从服务器,不要忘记server-id
在每个服务器上配置不同的服务器my.cnf
。
还要正确设置auto_increment_increment
并auto_increment_offset
避免重复的主键破坏复制。
正确配置每个服务器后,检查show slave status
是否Slave_IO_Running
处于Slave_SQL_Running
状态。yes
答案3
配置完成后,输入此命令 START SLAVE IO_THREAD