mysql5.6主从复制

preview
需积分: 0 1 下载量 97 浏览量 更新于2014-11-19 收藏 116KB PDF 举报
### MySQL 5.6 主从复制详解 #### 一、MySQL 5.6 主从复制概念 MySQL 的主从复制是一种常见的数据冗余方案,它能够实现数据的高可用性和故障转移,同时还能够用于负载均衡和读写分离。在主从复制架构中,一个或多个“从服务器”会自动复制来自“主服务器”的所有数据更改。 #### 二、环境准备 本文档介绍了一种基于 CentOS 6.4 (64位) 操作系统的 MySQL 5.6 主从复制配置方法。具体环境如下: - **操作系统**:CentOS 6.4 64位 - **MySQL 版本**:MySQL 5.6 - **主服务器 IP**:192.168.10.11 - **从服务器 IP**:192.168.10.10 #### 三、配置主服务器 ##### 3.1 配置 Master 在主服务器上进行如下配置: 1. **修改 my.cnf 文件**:在主服务器上编辑 `/etc/my.cnf` 文件,添加以下内容来配置二进制日志和服务器 ID。 ```ini [mysqld] server-id = 1 log-bin = mysql-bin binlog-do-db = baba1 binlog-do-db = baba2 binlog-ignore-db = mysql log-bin = /var/log/mysqlbin/bin_log expire_logs_days = 365 ``` - `server-id`: 设置唯一标识符,确保每个服务器都有不同的 ID。 - `log-bin`: 启用二进制日志。 - `binlog-do-db`: 规定哪些数据库的数据变更需要记录到二进制日志中。 - `binlog-ignore-db`: 忽略不需要记录的数据变更。 - `expire_logs_days`: 日志文件的保存时间,0 表示不自动删除。 2. **重启 MySQL 服务**:使用以下命令重启 MySQL 服务使配置生效。 ```bash service mysql restart ``` 3. **创建复制用户**:在 MySQL 命令行中创建一个专门用于复制的用户。 ```sql GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; ``` 4. **测试连接**:在从服务器上使用复制用户登录主服务器,验证用户权限配置是否正确。 ```bash mysql -ubackup -h192.168.10.11 -p123456 ``` 5. **检查主服务器状态**:使用以下命令检查主服务器的状态,获取必要的信息以配置从服务器。 ```sql SHOW MASTER STATUS; ``` 输出结果示例: ``` +-----------------+----------+-------------+------------------+------------------+ | File | Position | Binlog_Do_DB| Binlog_Ignore_DB | Executed_Gtid_Set| +-----------------+----------+-------------+------------------+------------------+ | bin_log.000030 | 120 | baba1,baba2 | mysql | | +-----------------+----------+-------------+------------------+------------------+ ``` #### 四、配置从服务器 ##### 4.1 配置 Slave 接下来,在从服务器上进行如下配置: 1. **修改 my.cnf 文件**:同样地,编辑 `/etc/my.cnf` 文件并添加以下内容。 ```ini [mysqld] server-id = 3 replicate-do-db = baba1 replicate-do-db = baba2 replicate-ignore-db = mysql ``` 2. **重启 MySQL 服务**:重启 MySQL 服务以应用新配置。 ```bash service mysql restart ``` 3. **设置从服务器同步**:使用以下命令配置从服务器同步主服务器的数据。 ```sql CHANGE MASTER TO MASTER_HOST = '192.168.10.11', MASTER_PORT = 3306, MASTER_USER = 'backup', MASTER_PASSWORD = '123456', MASTER_LOG_FILE = 'bin_log.000030', MASTER_LOG_POS = 120, MASTER_CONNECT_RETRY = 10; ``` - `MASTER_HOST`: 主服务器的 IP 地址。 - `MASTER_PORT`: 主服务器的 MySQL 端口。 - `MASTER_USER` 和 `MASTER_PASSWORD`: 在主服务器上创建的复制用户的用户名和密码。 - `MASTER_LOG_FILE` 和 `MASTER_LOG_POS`: 从主服务器状态查询中获取的二进制日志文件名和位置。 - `MASTER_CONNECT_RETRY`: 如果连接失败,则每隔多少秒尝试重新连接。 4. **启动从服务器的复制进程**:执行以下命令启动从服务器的复制进程。 ```sql START SLAVE; ``` 5. **验证复制状态**:使用以下命令验证从服务器的复制状态。 ```sql SHOW SLAVE STATUS\G ``` 输出结果应显示 `Slave_IO_Running` 和 `Slave_SQL_Running` 均为 `Yes`,表示复制正在正常运行。 #### 五、测试主从复制 为了确保主从复制配置成功,可以在主服务器上进行简单的测试操作。例如,在主服务器上创建一个新的表,并插入几条记录,然后检查从服务器上的相应数据库是否同步了这些更改。如果一切正常,则说明主从复制配置成功。 #### 六、总结 通过以上步骤,我们已经完成了 MySQL 5.6 的主从复制配置。这种配置不仅能够提高数据的可靠性和安全性,还能够提供数据的读写分离功能,从而提高系统的整体性能。需要注意的是,实际部署时还需要根据具体的业务需求和网络环境进行相应的调整。
身份认证 购VIP最低享 7 折!
30元优惠券