在CentOS上操作MySQL主从切换,可以按照以下步骤进行:
首先,停止从数据库的服务,以防止在切换过程中出现数据不一致的情况。
sudo systemctl stop mysqld
在切换之前,建议备份主数据库,以防万一。
mysqldump -u root -p --all-databases > full_backup.sql
编辑从数据库的配置文件(通常是/etc/my.cnf
或/etc/mysql/my.cnf
),将server-id
设置为一个唯一的值,并配置relay-log
和read-only
选项。
[mysqld]
server-id=100
relay-log=relay-bin
read-only=ON
重启从数据库服务以应用配置更改。
sudo systemctl start mysqld
在切换过程中,停止主数据库的服务。
sudo systemctl stop mysqld
更新从数据库的复制用户,使其指向新的主数据库。假设新的主数据库的地址为new_master_ip
,端口为3306
,用户名为repl
,密码为password
。
USE mysql;
FLUSH PRIVILEGES;
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
编辑从数据库的配置文件(通常是/etc/my.cnf
或/etc/mysql/my.cnf
),添加以下配置以指向新的主数据库。
[mysqld]
server-id=100
relay-log=relay-bin
read-only=ON
relay-log-index=relay-bin.index
relay-log-do-db=your_database_name
重启从数据库服务以应用配置更改。
sudo systemctl start mysqld
在从数据库上执行以下命令,验证复制状态是否正常。
SHOW SLAVE STATUS\G;
确保Slave_IO_Running
和Slave_SQL_Running
都为Yes
,并且Last_IO_Error
和Last_SQL_Error
为空。
最后,更新你的应用程序配置,使其指向新的主数据库地址。
启动主数据库服务以恢复服务。
sudo systemctl start mysqld
通过以上步骤,你应该能够成功地在CentOS上进行MySQL主从切换。如果在过程中遇到任何问题,请检查日志文件以获取更多信息。