设置MySQL主 - 主复制

时间:2013-12-23 15:15:49

标签: mysql replication database-replication mysql-5.6

我目前有一台主服务器,并希望添加另一台主服务器进行故障转移。

在主服务器上,我已将以下内容添加到“my.ini”

server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
log_bin=mysql-bin
log_error=mysql-bin.err
binlog_do_db=1
binlog_do_db=2
binlog_do_db=3
binlog_do_db=4

添加后:

master-host = [IP]
master-user = [usernameslaveuser]
master-password = [password]
master-connect-retry = 30

mysql服务器不再启动... 所以我决定先让辅助服务器正常工作。

问题2: 在新服务器上,我已经从主数据库的“data”/ mysql目录复制了我的用户文件。 我还用MySQL工作台导入了所有数据库。

然后我将其添加到“my.ini”:

server-id=2
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2

master-host = [IP]
master-user = [usernameslaveuser]
master-password = [password]
master-connect-retry = 30
log_bin=mysql-bin
log_error=mysql-bin.err
binlog_do_db=1
binlog_do_db=2
binlog_do_db=3
binlog_do_db=4

服务器启动正常,所以我决定在主服务器上的复制数据库中添加一个表,但是没有复制到辅助服务器的更改......

我google了一下,发现我必须在mysql命令行中运行一些命令才能使复制工作。 但是,当我在辅助服务器上打开它时,它无法启动... 在命令提示符下打开它时,它表示mysql.exe:未知变量'server-id = 2“

两台服务器都运行Windows Server 2012 R2并安装了MySQL 5.6.15 64位。 有人可以指导我真正设置它的最后部分吗?

2 个答案:

答案 0 :(得分:14)

在最新版本的MySQL中不再支持在my.cnf(linux)或my.ini(windows)文件中指定如下

master-host = [IP]
master-user = [usernameslaveuser]
master-password = [password]
master-connect-retry = 30  

您应该改为执行此查询:

CHANGE MASTER TO MASTER_HOST='host name/ip',MASTER_USER='user',MASTER_PASSWORD='pwd',              MASTER_PORT=3306, MASTER_CONNECT_RETRY=30; 

答案 1 :(得分:0)

我已经解决了问题2:我没有把它放在mysqld部分,而是放在my.ini的mysql部分

已解决的问题1:必须在MySQL命令行中运行它。