用于非标准端口的MySQL复制(3306)

我想在MS Windows 2008 R2下使用MySQL 5.6.14进行MySQL复制,Master和Slave的端口应为1000(PC1上的master数据库,PC2上安装的slave数据库).

我为master My.ini添加了以下参数

[mysqld]
server-id=1
log-bin=black-bin.log
datadir=d:\mysql\master\
innodb_flush_log_at_trx_commit=1
sync_binlog=1

然后我编辑了奴隶My.ini添加以下参数:

[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
datadir=d:\mysql\slave

之后,我使用root用户登录Master数据库并执行以下命令

CREATE USER repl_user@slave_ip;
GRANT REPLICATION SLAVE ON *.* TO repl_user@slave_ip IDENTIFIED BY 'password';

初始化复制我登录到slave数据库并执行以下命令:

CHANGE MASTER TO MASTER_HOST='maset_ip',
 -> MASTER_USER='repl_user',
 -> MASTER_PASSWORD='password';
start slave;

如果主服务器的端口是3306,则复制正常,但如果端口已更改,则它不再起作用.我的问题是:如何使slave连接到端口1000?我试图将以下参数添加到slave my.ini master-port = 1000然后重新启动从属SID但它没有工作(服务没有启动,错误消息:未知参数主端口).请指教,谢谢.

解决方法:

您需要为主服务器添加端口到my.ini

[mysqld]
server-id=1
port=1000
log-bin=black-bin.log
datadir=d:\mysql\master\
innodb_flush_log_at_trx_commit=1
sync_binlog=1

并重启mysql

首先运行这个

STOP SLAVE;
SHOW SLAVE STATUS\G

从输出

>使用Relay_Master_Log_File作为CurrentLogFile
>使用Exec_Master_Pos作为CurrentLogPosition

mentioned in the comment一样,在Slave上运行CHANGE MASTER TO就像这样

CHANGE MASTER To
MASTER_HOST='ipaddrofmaster',
MASTER_PORT=1000,
MASTER_USER='repl_user',
MASTER_PASSWORD='password'
MASTER_LOG_FILE='CurrentLogFile',
MASTER_LOG_POS=CurrentLogPosition;
START SLAVE;

试试看 !!!

上一篇:mysql – 设置主到多主复制的最佳方法


下一篇:MySQL复制错误(1062)