首先,大家需要停掉MySQL服务,修改主从配置文件。
# /etc/my.cnf # 主服务器配置内容 [mysqld] port=3306 bind-address=10.10.10.1 server-id=1 log-bin=mysql-bin binlog-ignore-db=mysql replicate-do-db=mydb # /etc/my.cnf # 从服务器配置内容 [mysqld] port=3306 bind-address=10.10.10.2 server-id=2 log-bin=mysql-bin binlog-ignore-db=mysql replicate-do-db=mydb
修改完成以后,重新启动MySQL服务。
# systemctl stop mysqld # systemctl start mysqld
接下来,大家需要在主服务器上授权从服务器的连接。
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'10.10.10.2' IDENTIFIED BY 'slave1'; mysql>FLUSH PRIVILEGES;
然后,在主服务器上执行如下命令,获取当前的Binlog文件名称和位置。
mysql>SHOW MASTER STATUS; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 107 | mydb | mysql | | +------------------+----------+--------------+------------------+-------------------+
将获取的文件名称和位置记录下来,然后在从服务器上执行如下命令,配置从服务器连接主服务器。
mysql>CHANGE MASTER TO MASTER_HOST='10.10.10.1', MASTER_PORT=3306, MASTER_USER='slave1', MASTER_PASSWORD='slave1', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; mysql>START SLAVE; mysql>SHOW SLAVE STATUS\G
最后,可以通过 SHOW SLAVE STATUS 命令查看从服务器是否已经成功连接主服务器。