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: 如果步骤正确请指正。
您可以按照以下步骤-
在 master 上创建一个用户,该用户可以从具有复制权限的 slave2 进行连接。
使用 master-data=2 选项从主服务器获取转储备份,以获取二进制文件 co-ordiante.
注意:假设主服务器上启用了二进制日志。
在 slave2 上恢复这个备份。
现在按照下面的命令执行 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 以上。
我想将 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: 如果步骤正确请指正。
您可以按照以下步骤-
在 master 上创建一个用户,该用户可以从具有复制权限的 slave2 进行连接。
使用 master-data=2 选项从主服务器获取转储备份,以获取二进制文件 co-ordiante.
注意:假设主服务器上启用了二进制日志。
在 slave2 上恢复这个备份。
现在按照下面的命令执行 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 以上。