MySQL主从复制配置教程
需积分: 4 91 浏览量
更新于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连接,以及根据业务需求调整复制策略。此外,主从复制还支持半同步复制和多源复制等高级特性,以满足更复杂的需求。
2014-09-03 上传
2017-06-05 上传
2019-05-07 上传
2023-02-08 上传
2023-08-25 上传
2023-06-09 上传
2023-10-29 上传
2023-05-26 上传
2023-10-20 上传
dinglf2011
- 粉丝: 0
- 资源: 2
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案