搜索
查看: 3878|回复: 2

Centos7下MySQL主从复制

    [复制链接]

681

主题

995

帖子

2506

积分

管理员

本论坛第一帅

Rank: 9Rank: 9Rank: 9

积分
2506

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2021-3-3 18:22:36 | 显示全部楼层 |阅读模式

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

mysql主从复制

环境说明

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

配置主服务器

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

mysql -u root -p
create DATABASE db;

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

[mysqld] 节点中增加如下内容:

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

主配置文件

添加远程登录账号

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

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

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

show master status;

记录这两个值,后面要用到。

配置从服务器

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

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

在[mysqld]节点中增加如下内容:

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

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

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,那说明没问题了

验证

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

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

而此时,在从服务器中已同步更新!

填个坑

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

相关帖子

有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

104

主题

153

帖子

292

积分

中级会员

Rank: 3Rank: 3

积分
292
发表于 2021-3-4 08:05:04 来自手机 | 显示全部楼层
学习了!下来试试!
回复 支持 反对

使用道具 举报

152

主题

251

帖子

540

积分

高级会员

中国黑客

Rank: 4

积分
540
QQ
发表于 2021-3-10 21:16:48 来自手机 | 显示全部楼层
学习了,谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表