mysql主从复制

闲来无事讲一下mysql主从复制吧,, 也算是对数据库高可用的一种理解和笔记。

我用的环境 contents7.x;mysql5.7

其实这玩意我个人理解配置起来简单,就是用的过程中的注意的地方多一点多,比如延迟同步等等。

首先,保证有2个mysql服务器。

主服务器


第一步:查找主服务器mysql的my.cnf

第二步:配置my.cnf

#服务器id(要注意这个id只能唯一)
server-id=1
#二进制日志名
log_bin=master-bin
#日志索引名
log_bin_index=masger-bin.index
#同步的数据库名称(不写就是默认同步给的权限账号下所有的数据库)
binlod-do-db=数据库名称
#不同步的数据库名称(可以不写)
binlog-ignore-db=数据库名称
#三种二进制日志文件的格式(row,statement,mixed)
binlog-format=xxx

第三步:保存重启mysql。


第四步:给从服务器配置账号和权限。

1.可以看我之前发的帖子创建账号给权限什么的。
命令行登录mysql进去mysql -uroot -p
#创建用户
create user 'test1'@'%' identified by 'Test2020-Q@'
#给用户所有的表权限(给特定权限的去我翻我以前的文章看)
grant all on *.* to 'test1'@'%'
#拥有此权限可以查看从服务器,从主服务器读取二进制日志。
GRANT REPLICATION SLAVE ON *.* TO 'test1'@'%';
#刷新权限。必须
flush privileges

从服务器


第一步:一样的骚操作,先找从服务器mysql的my.cnf,完事看看里面的service_id是否是唯一的,不能跟主服务器或者其他从服务器的一致。

第二步:登录mysql进入命令行执行命令(带双引号的参数就是需要带不要去除)
CHANGE MASTER TO
MASTER_HOST='你的远程地址',
MASTER_USER='刚才配置的用户名',
MASTER_PASSWORD=密码',
这俩需要在主服务器mysql登录后执行show master status查看
MASTER_LOG_FILE='File的名称',
MASTER_LOG_POS=Position的行数;

第三步:执行开启同步的命令
 start slave 开启同步
 stop slave 关闭同步
 reset slave和 reset slave all  重配,重置mysql主从同步的命令
---reset slave 仅清理master.info 和 relay-log.info 文件
---删除所有的relay log 文件,重启用一个新的relay log 文件。
---重置 MASTER_DELAY  复制延迟间隔为:0
---不清理内存里的同步复制配置信息
---不重置 gtid_executed or gtid_purged 参数值
 reset slave all 功能和上面一样但是会立即清理内存里的同步配置信息

第四步:查询从服务器同步情况
从服务器mysql命令行执行 show slave status\G

这里面主要看几个值
salve_io_running 就是跟主服务做关联的 必须为yes才算成功
salve_sql_running 从服务器的sql的同步  必须为yes才算成功
Last_Errno 错误码
Last_Error 错误信息

有什么错百度百度,哈哈哈哈,困了,有时间再更新,哪里报错的私信。看到后我会回复。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值