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