温馨提示×

Apache MySQL复制如何配置

小樊
83
2024-10-14 17:33:13
栏目: 云计算

配置 Apache MySQL 复制涉及多个步骤,包括设置主服务器和从服务器的配置文件。以下是一个基本的配置示例:

主服务器配置 (my.cnfmy.ini):

  1. [mysqld] 部分添加以下内容:

    server-id=1
    log_bin=/var/log/mysql/mysql-bin.log
    binlog_do_db=your_database_name
    binlog_format=ROW
    

    请将 your_database_name 替换为你希望复制的数据库名称。server-id 是主服务器的唯一标识符,log_bin 指定了二进制日志的文件路径。binlog_do_db 限制了哪些数据库的更改会被记录到二进制日志中。binlog_format 定义了二进制日志的事件格式,这里使用的是 ROW 格式,它记录了行的更改。

  2. 重启 MySQL 服务以使更改生效。

从服务器配置 (my.cnfmy.ini):

  1. [mysqld] 部分添加以下内容:

    server-id=2
    relay_log=/var/log/mysql/mysql-relay-bin.log
    log_slave_updates=1
    read_only=1
    

    这里,server-id 是从服务器的唯一标识符,relay_log 指定了中继日志的文件路径。log_slave_updates 启用从服务器将更新记录到自己的二进制日志中。read_only 设置从服务器为只读模式,以防止写操作。

  2. 创建一个用于复制的专用 MySQL 用户,并授权访问主服务器:

    CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
    FLUSH PRIVILEGES;
    

    请将 your_password 替换为你为该用户设置的密码。

  3. 在从服务器上设置主服务器的相关信息:

    CHANGE MASTER TO
    MASTER_HOST='master_server_ip',
    MASTER_USER='repl',
    MASTER_PASSWORD='your_password',
    MASTER_LOG_FILE='recorded_log_file_name',
    MASTER_LOG_POS=recorded_log_position;
    

    请将 master_server_ip 替换为主服务器的 IP 地址,your_password 替换为之前创建的用户的密码,recorded_log_file_namerecorded_log_position 分别替换为主服务器二进制日志中的文件名和位置。

  4. 启动从服务器上的 MySQL 服务。

  5. 检查复制状态:

    SHOW SLAVE STATUS\G;
    

    如果一切正常,你应该能看到 Slave_IO_RunningSlave_SQL_Running 的状态为 “Yes”。此外,Last_IO_ErrorLast_SQL_Error 应该是空的,表示没有发生错误。

请注意,这只是一个基本的配置示例。在生产环境中,你可能需要根据具体需求进行更多的配置和优化。

0