在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主从切换。如果在过程中遇到任何问题,请检查日志文件以获取更多信息。