MySQL主从复制配置教程

需积分: 4 1 下载量 120 浏览量 更新于2024-09-16 收藏 52KB DOC 举报
"MySQL主从复制配置教程" MySQL主从复制是一种常见的数据库高可用和负载均衡解决方案,它允许数据从一个服务器(主服务器)实时同步到另一个或多个服务器(从服务器)。这种配置使得数据在多台服务器间分散,提高了系统的可靠性和性能。以下是配置MySQL主从复制的详细步骤: 一、环境准备 首先,你需要准备两台独立的服务器作为主从数据库。例如,这里使用了IP地址为192.168.1.119的服务器作为主数据库服务器,而192.168.1.120作为从数据库服务器。确保在这两台服务器上都已安装并运行MySQL数据库服务。 二、配置主服务器 1. 创建复制用户:在主服务器上,你需要创建一个专门用于复制的MySQL账户。比如创建名为`rep1`的用户,并授予`REPLICATION SLAVE`权限,允许该用户从IP为192.168.1.120的从服务器连接。执行以下SQL命令: ```sql mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.1.120' IDENTIFIED BY '123'; ``` 2. 修改配置:编辑主服务器的MySQL配置文件`my.cnf`,通常位于`/etc/my.cnf`。添加以下行以启用二进制日志(binlog)并设置唯一的`server-id`: ``` [mysqld] server-id = 1 log-bin = /var/lib/mysql/mysql-bin.log ``` 保存并重启MySQL服务使更改生效。 三、获取主服务器状态 在主服务器上执行以下命令,以锁定所有表并获取当前的二进制日志信息,这将用于从服务器的初始同步: ```sql mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; ``` 记录返回的`File`(二进制日志文件名)和`Position`(二进制日志的位置),这两个值对从服务器非常重要。 四、数据备份与恢复 1. 创建测试数据库:为了演示,可以创建一个名为`test1`的数据库。 ```sql mysql> CREATE DATABASE test1; ``` 2. 复制数据:有两种方式将主服务器的数据同步到从服务器,一是使用`mysqldump`工具生成SQL脚本,二是直接复制二进制日志文件和数据文件。这里采用直接复制文件的方法。首先,停止主服务器的MySQL服务,然后复制`/var/lib/mysql/`目录下的所有文件到从服务器相同路径。 五、配置从服务器 1. 安装MySQL:如果尚未安装,确保在从服务器上安装MySQL。 2. 修改配置:同样,编辑从服务器的`my.cnf`,添加`server-id`,但设置为不同的值,例如: ``` [mysqld] server-id = 2 ``` 3. 初始化从服务器:使用`mysql_install_db`或类似命令初始化MySQL数据目录。 4. 启动并解锁:启动从服务器的MySQL服务,然后在主服务器上解除表的读锁: ```sql mysql> UNLOCK TABLES; ``` 5. 从主服务器同步数据:在从服务器上,使用`CHANGE MASTER TO`命令设置主服务器的连接信息和刚刚获取的日志位置: ```sql mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.119', MASTER_USER='rep1', MASTER_PASSWORD='123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=<Position从SHOW MASTER STATUS获取>; ``` 替换`<Position>`为实际的二进制日志位置。 6. 开始复制:最后,在从服务器上启动复制进程: ```sql mysql> START SLAVE; ``` 现在,从服务器应该开始从主服务器同步数据。你可以通过检查`SHOW SLAVE STATUS \G;`命令的结果来确认复制是否成功。 通过以上步骤,你已经成功配置了MySQL的主从复制。请注意,实际环境中可能需要考虑更多的安全措施,如使用SSL连接,以及根据业务需求调整复制策略。此外,主从复制还支持半同步复制和多源复制等高级特性,以满足更复杂的需求。