在CMake中配置MySQL主从复制,需要首先确保已经安装了MySQL数据库
-
安装MySQL数据库: 请参考MySQL官方文档进行安装:https://dev.mysql.com/doc/refman/8.0/en/installing.html
-
创建一个专用于主从复制的用户: 在主服务器上,使用以下命令创建一个用于主从复制的用户:
mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; -
修改主服务器的my.cnf配置文件: 在主服务器上,找到并编辑my.cnf配置文件。通常位于
/etc/mysql/my.cnf或/etc/my.cnf。添加或修改以下内容:[mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=your_database_name binlog-format=row其中,
server-id是主服务器的唯一标识,log-bin是用于存储二进制日志文件的路径,binlog-do-db是需要复制的数据库名称,binlog-format是指定复制时使用的二进制日志格式。 -
重启主服务器的MySQL服务: 在主服务器上,重启MySQL服务以应用更改:
sudo service mysql restart -
获取主服务器的二进制日志文件名和位置: 在主服务器上,运行以下命令以获取当前的二进制日志文件名和位置:
mysql -u root -p -e "SHOW MASTER STATUS;"记下输出结果中的
File和Position值,因为这些值将在从服务器上配置复制时使用。 -
导出主服务器上需要复制的数据库: 在主服务器上,使用以下命令导出需要复制的数据库:
mysqldump -u root -p your_database_name > your_database_name.sql -
将导出的数据库导入到从服务器: 将导出的数据库文件传输到从服务器,并使用以下命令导入:
mysql -u root -p your_database_name< your> -
修改从服务器的my.cnf配置文件: 在从服务器上,找到并编辑my.cnf配置文件。通常位于
/etc/mysql/my.cnf或/etc/my.cnf。添加或修改以下内容:[mysqld] server-id=2 replicate-do-db=your_database_name其中,
server-id是从服务器的唯一标识,replicate-do-db是需要复制的数据库名称。 -
配置从服务器连接到主服务器: 在从服务器上,运行以下命令以配置从服务器连接到主服务器:
mysql -u root -p -e "CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='repl_user', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 154;"其中,
MASTER_HOST是主服务器的IP地址,MASTER_USER和MASTER_PASSWORD是在步骤2中创建的复制用户的用户名和密码,MASTER_LOG_FILE和MASTER_LOG_POS是在步骤5中获取的二进制日志文件名和位置。 -
启动从服务器上的复制进程: 在从服务器上,运行以下命令以启动复制进程:
mysql -u root -p -e "START SLAVE;" -
检查从服务器的复制状态: 在从服务器上,运行以下命令以检查复制状态:
mysql -u root -p -e "SHOW SLAVE STATUS\G"如果一切正常,您应该会看到
Slave_IO_Running和Slave_SQL_Running状态为YES。
现在,您已经成功配置了MySQL主从复制。从服务器将自动从主服务器复制数据,并保持与主服务器同步。