温馨提示×

CMake中MySQL主从复制的配置

小樊
82
2024-09-05 21:17:31
栏目: 云计算

在CMake中配置MySQL主从复制,需要首先确保已经安装了MySQL数据库

  1. 安装MySQL数据库: 请参考MySQL官方文档进行安装:https://dev.mysql.com/doc/refman/8.0/en/installing.html

  2. 创建一个专用于主从复制的用户: 在主服务器上,使用以下命令创建一个用于主从复制的用户:

    mysql -u root -p
    GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'your_password';
    FLUSH PRIVILEGES;
    
  3. 修改主服务器的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是指定复制时使用的二进制日志格式。

  4. 重启主服务器的MySQL服务: 在主服务器上,重启MySQL服务以应用更改:

    sudo service mysql restart
    
  5. 获取主服务器的二进制日志文件名和位置: 在主服务器上,运行以下命令以获取当前的二进制日志文件名和位置:

    mysql -u root -p -e "SHOW MASTER STATUS;"
    

    记下输出结果中的FilePosition值,因为这些值将在从服务器上配置复制时使用。

  6. 导出主服务器上需要复制的数据库: 在主服务器上,使用以下命令导出需要复制的数据库:

    mysqldump -u root -p your_database_name > your_database_name.sql
    
  7. 将导出的数据库导入到从服务器: 将导出的数据库文件传输到从服务器,并使用以下命令导入:

    mysql -u root -p your_database_name< your_database_name.sql
    
  8. 修改从服务器的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是需要复制的数据库名称。

  9. 配置从服务器连接到主服务器: 在从服务器上,运行以下命令以配置从服务器连接到主服务器:

    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_USERMASTER_PASSWORD是在步骤2中创建的复制用户的用户名和密码,MASTER_LOG_FILEMASTER_LOG_POS是在步骤5中获取的二进制日志文件名和位置。

  10. 启动从服务器上的复制进程: 在从服务器上,运行以下命令以启动复制进程:

    mysql -u root -p -e "START SLAVE;"
    
  11. 检查从服务器的复制状态: 在从服务器上,运行以下命令以检查复制状态:

    mysql -u root -p -e "SHOW SLAVE STATUS\G"
    

    如果一切正常,您应该会看到Slave_IO_RunningSlave_SQL_Running状态为YES

现在,您已经成功配置了MySQL主从复制。从服务器将自动从主服务器复制数据,并保持与主服务器同步。

0