MySQL数据库主从复制与读写分离(一)

4 篇文章 0 订阅
3 篇文章 0 订阅

目录

前言

主从复制设置

配置主服务器

1. **编辑配置文件**:

2. **重启MySQL服务**:

3. **创建复制用户**:

4. **记录二进制日志文件位置**:

配置从服务器

1. **编辑配置文件**:

2. **重启MySQL服务**:

3. **配置复制**:

4. **启动复制**:

5. **检查复制状态**:

### 读写分离配置

#### 应用程序实现

#### 使用ProxySQL实现


前言

下面将详细介绍这两个过程的设置步骤,这里需要你有基础的MySQL安装和配置经验。

主从复制设置

配置主服务器

1. **编辑配置文件**:

找到MySQL的配置文件`my.cnf`(Linux系统)或`my.ini`(Windows系统),通常位于`/etc/mysql/`(Linux)或MySQL安装目录下(Windows)。在`[mysqld]`段中添加以下行:

   server-id=1
   log-bin=mysql-bin
   binlog-do-db=your_database_name  # 可选,如果只想复制特定数据库

   `server-id`为MySQL服务器的唯一ID,主服务器设置为1。

   `log-bin`启用二进制日志,是复制的基础。

2. **重启MySQL服务**:

使配置生效。

   sudo systemctl restart mysql
3. **创建复制用户**:

登录到MySQL,为从服务器复制操作创建一个专用用户。

 CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
   GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
   FLUSH PRIVILEGES;
4. **记录二进制日志文件位置**:

执行以下命令,记下`File`和`Position`的值,从服务器需要这些信息来开始复制过程。

   SHOW MASTER STATUS;
//刷新
flush privileges;

//退出
exit;

配置从服务器

1. **编辑配置文件**:

与主服务器类似,设置`server-id`为2(或其他唯一ID),不需要启用`log-bin`,但需要指定`relay-log`来保存从主服务器接收到的日志。

server-id=2
relay-log=relay-bin
2. **重启MySQL服务**:

使配置生效。

   sudo systemctl restart mysql
3. **配置复制**:

登录到MySQL,执行`CHANGE MASTER TO`命令,指定主服务器的连接信息、复制用户及其密码、以及前面记录的二进制日志文件名和位置。

 CHANGE MASTER TO
   MASTER_HOST='master_ip_address',
   MASTER_USER='replicator',
   MASTER_PASSWORD='password',
   MASTER_LOG_FILE='recorded_log_file_name',
   MASTER_LOG_POS=recorded_log_position;
4. **启动复制**:

执行以下命令启动复制过程。

 START SLAVE;
5. **检查复制状态**:

通过以下命令确认复制是否正常工作。

   SHOW SLAVE STATUS\G

   确保`Slave_IO_Running`和`Slave_SQL_Running`都是`Yes`。

//刷新
flush privileges;

//退出
exit;

### 读写分离配置

读写分离通常需要应用程序支持或使用第三方工具(如`ProxySQL`)来实现。

#### 应用程序实现

- 在应用程序中创建两个数据库连接,一个用于写操作(连接到主服务器),另一个用于读操作(连接到从服务器)。
- 根据操作类型动态选择使用哪个连接。

-------------------------下一期--------------------出一个有图的=========++++++---==-----00======

#### 使用ProxySQL实现

1. **安装ProxySQL**:根据您的操作系统安装ProxySQL。

2. **配置ProxySQL**:编辑ProxySQL配置文件,添加主服务器和从服务器的信息。

3. **启动ProxySQL**:启动ProxySQL服务。

4. **配置读写分离规则**:通过ProxySQL的管理接口配置读写分离规则。

5. **应用程序连接ProxySQL**:将应用程序的数据库连接指向ProxySQL,而不是直接连接到MySQL服务器。

这提供了一个基础的概念和步骤,每个步骤的实现可能会根据具体的操作系统和环境有所不同。

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值