Mysql 复制从站未连接 "ERROR 1200 (HY000)"

Mysql Replication Slave not getting connected "ERROR 1200 (HY000)"

我想将 Server3 添加到 MySQL Master 并将其复制为 slave,当我 运行 [start slave;] 我遇到以下错误

"ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO"

我已经检查了我当前从站(Server2)的所有配置,但是无法 找到任何解决方案或修复。

改变解决方案

Step1: GRANT REPLICATION SLAVE ON . TO 'slave_user'@'master_ip' IDENTIFIED BY 'slave_pass'; FLUSH PRIVILEGES;

Step2: FLUSH TABLES WITH READ LOCK; mysqldump --all-databases --single-transaction > all_databases.sql

Step4: CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='slave_user', MASTER_PASSWORD='slave_pass', MASTER_LOG_FILE='mysql-bin.000071', MASTER_LOG_POS=754916280;

我从 "show master status\G" 命令得到了 MASTER_LOG_FILE 和 MASTER_LOG_POS,我在主服务器

上 运行

@Zafar Malik: 如果步骤正确请指正。

您可以按照以下步骤-

  1. 在 master 上创建一个用户,该用户可以从具有复制权限的 slave2 进行连接。

  2. 使用 master-data=2 选项从主服务器获取转储备份,以获取二进制文件 co-ordiante.

注意:假设主服务器上启用了二进制日志。

  1. 在 slave2 上恢复这个备份。

  2. 现在按照下面的命令执行 change master to command-

    将主更改为 MASTER_HOST='master_server_ip'、MASTER_USER='replication_user'、MASTER_PASSWORD='replication_pass'、MASTER_LOG_FILE= 'mysql-bin.001', MASTER_LOG_POS=123;

注意:MASTER_LOG_FILE,MASTER_LOG_POS 您可以从备份文件中获取。

更新:

按照您下面的要求检查步骤-

第一步:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_ip' IDENTIFIED BY 'slave_pass';

注意:由于slave会连接到master,所以上面的命令会在master上执行,master会提供slave ip的权限。 G运行t 命令自动刷新权限,因此不需要刷新权限,如果需要,您可以。

第二步:FLUSH TABLES WITH READ LOCK; mysqldump --all-databases --single-transaction > all_databases.sql

第四步:

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='slave_user', MASTER_PASSWORD='slave_pass', MASTER_LOG_FILE='mysql-bin.000071', MASTER_LOG_POS=754916280;

我从 "show master status\G" 命令得到了 MASTER_LOG_FILE & MASTER_LOG_POS 我在主服务器 运行

注意:假设您在应用读取锁定之后释放它之前获得了 co-ordinates 以上。