admin 发表于 2021-3-3 18:22:36

Centos7下MySQL主从复制

> 在 MySQL 中我们可以配置主从复制来备份我们的数据库。以防数据库的丢失。

!(data/attachment/forum/202103/03/182205mf445c4ibit6c59a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "2082709113.png")

### 环境说明

* 主服务器: 阿里云( `*.*.*.110`)
* 从服务器: 腾讯云( `*.*.*.190`)
* 系统环境:`centos7` `mysql5.6`
* 在防火墙和安全组中分别开启 `3306` 端口

### 配置主服务器

登录主数据库,创建 `db` 数据库

```
mysql -u root -p
create DATABASE db;
```

然后编辑主数据库的 `my.ini` 文件

在 `` 节点中增加如下内容:

```
#指定唯一的ID,1至32,必须的
server-id=1
#指定二进制日志存放路径,必须的
log-bin=mysql-log-bin
#指定要同步的数据库,必须的
binlog-do-db=db
```

![主配置文件](https://blog.bbskali.cn/usr/uploads/2021/03/3536302461.jpg)

### 添加远程登录账号

```
GRANT ALL PRIVILEGES ON *.* TO priess@'%' IDENTIFIED BY '12345678@';
flush privileges;
```

需要注意的是一定要在安全组和防火墙中开启 3306 端口,否则从服务器可能无法连接。

** 查看主服务器的状态信息,并且找到 File 和 Position 的值记录下来**

```
show master status;
```

记录这两个值,后面要用到。
![](https://blog.bbskali.cn/usr/uploads/2021/03/213283516.jpg)

### 配置从服务器

在从数据库中创建新的数据库 `db`。

然后编辑从数据库的 `my.ini` 文件

在节点中增加如下内容:

```
#指定唯一的ID,2至32,必须的,并且不能跟主数据库一样
server-id=2
#指定要同步的数据库,必须的
replicate-do-db=db
```

![](https://blog.bbskali.cn/usr/uploads/2021/03/3864645517.jpg)

### 设置登录主数据库的账号和密码等信息

```
change master to master_host='主ip',master_user='priess',master_password='12345678@', master_log_file='mysql-bin.000078',master_log_pos=120;
start slave;
```

**参数说明:**
`host`: 主服务器的 IP 地址
`master_user:` 上面配置的用于复制的账号
`master_password:` 账号密码
`master_log_file:` 填写 show master status 命令得到的值
`master_log_pos:` 同上

### 检测

在从数据库中执行

```
show slave status \G;
```

如果出现: Slave_IO_Running: YesSlave_SQL_Running: Yes 以上两项都为 `Yes`,那说明没问题了

![](https://blog.bbskali.cn/usr/uploads/2021/03/2806010949.jpg)

### 验证

我么在主服务器数据库 `db` 中,创建表并插入数据!

```
mysql> INSERT INTO bbskali
    -> (title, author, date)
    -> VALUES
    -> ( "kali论坛", "大表哥牛逼", NOW());
```

![](https://blog.bbskali.cn/usr/uploads/2021/03/75968341.jpg)
而此时,在从服务器中已同步更新!
![](https://blog.bbskali.cn/usr/uploads/2021/03/855517179.jpg)

### 填个坑

Slave_IO_Running 问题 一般是账号和 File 和 Position 的值发生了变动。
YesSlave_SQL_Running: 问题 检查两个数据库的表结构是否一致

小黄人 发表于 2021-3-4 08:05:04

学习了!下来试试!

priess1314 发表于 2021-3-10 21:16:48

学习了,谢谢分享!
页: [1]
查看完整版本: Centos7下MySQL主从复制