我正在按照本指南设置主从配置(https://support.rackspace.com/how-to/set-up-mysql-master-slave-replication/),我对结尾感到困惑他们设置 SLAVE 的文档
在设置slave时,他们建议将以下内容放入SLAVE my.cnf文件中
bind-address = 0.0.0.0
server-id = 2
master-host = [private-IP-of-db01]
master-user = [replication-username]
master-password = [replication-password]
master-connect-retry = 60
后来他们建议登录到 mysql,然后告诉奴隶从哪里开始复制
# mysql -u root -p
mysql> SLAVE STOP;
mysql> CHANGE MASTER TO MASTER_HOST='[private-IP-of-db01]',
MASTER_USER='[replication-username]',
MASTER_PASSWORD='[replication-password]',
MASTER_LOG_FILE='[file-listed-on-master-status]',
MASTER_LOG_POS=[log-position-listed-on-master-status];
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
我的问题专门针对 MASTER LOG FILE 和 MASTER LOG POS。这些东西不是要在slave上my.cnf里设置吗?
我问这个是因为如果有一天我出于某种原因必须重新启动 slave mysql,slave 将如何知道从哪里接起?我是否必须通过重新导入数据库的过程才能再次知道该位置?或者我是否必须在关闭从数据库之前保存位置#?
谢谢!
不,您只能在执行期间设置这些值(使用 mysql 客户端工具)
MySQL 将复制变量存储在默认位于数据目录中的文件中(通常这些文件名包含“relay”和“master”字样)并且它会在每个事务中更新这些文件,所以不用担心,如果你需要重新启动你的从服务器,服务器已经知道如何赶上主人。
从站在关闭时将正确的坐标保存在
master.info
文件中,因此重启后复制不会中断。您只需在从站初始化时设置一次 LOG_FILE/LOG_POS。其余的mysql
都可以自己做。在 my.cnf 中设置这些东西是不受欢迎的。最好(尤其是密码)以
CHANGE MASTER
. 这是首选方式。同时,日志位置保存在文件(旧版本)或表(新版本)中。