在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_database_name.sql
修改从服务器的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主从复制。从服务器将自动从主服务器复制数据,并保持与主服务器同步。