我想在mysql上设置复制。
我用以下内容替换了从属文件中my.ini文件的内容:
[mysqld]
log-bin = mysql-bin
server_id = 2
server-id = 2
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
replicate_do_db = replica
我不知道,正确的“服务器id”或“服务器id”,所以我都写了。然后保存并重新启动mysql。然后我检查命令:show variables like'server\u id',然后输出出现:
+ --------------- + ------- +
| Variable_name | Value |
+ --------------- + ------- +
| server_id | 1 |
+ --------------- + ------- +
我很困惑,为什么结果是1?然后我再次尝试使用命令:show variables like'server id',然后输出显示:empty set(0.00秒)
问题是:
哪一个是正确的:“服务器id”还是“服务器id”(因为我两个都试过了(还是不行)
为什么在使用上述设置保存my.ini文件后,server\u id变量保持不变?
注意:我已经运行了“stop slave”命令->“start slave”然后是“reset master”,但是结果保持不变。
1条答案
按热度按时间nfs0ujit1#
服务器id正确
主机和每个从机必须配置一个唯一的id(使用服务器id选项)。此外,每个从机必须配置有关主主机名、日志文件名以及该文件中的位置的信息。
我假设您正在使用二进制日志选项进行复制
所以,看一下手册(https://dev.mysql.com/doc/refman/8.0/en/replication-howto.html)你肯定需要:
对于主服务器-确保启用了二进制日志记录,并配置唯一的服务器id
每个复制从属服务器必须具有唯一的服务器id
使用连接到主服务器的设置配置从属服务器,例如主机名、登录凭据和二进制日志文件名和位置(有关详细信息,请参阅)https://dev.mysql.com/doc/refman/8.0/en/replication-howto-slaveinit.html)