centos7.x 配置mysql 主从复制服务

废话不说,直接干货

准备工作

先准备两台服务器:(教程演示的为博主自己搭建的两台centos7.2系统的虚拟机)

  master ip 192.168.5.129
  slave  ip 192.168.5.130

需要保证两台机器再同一网关下,并且可以相互ping通。(这里就不讲解如何查看了,网上很多)

安装数据库

本来博主准备写一个mysql自动安装的脚本,奈何水平有限,没有完成,那就先一步一步安装msql吧。

  1. 下载rpm源
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  1. 进行安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
  1. 进行yum的安装
yum install -y mysql-community-server

两台机器重复相同的命令,安装mysql,安装时最好yum源最好换成国内的源。

安装完成之后记得开启3306端口,不然从库无法链接主库同步数据,鉴于firewall防火墙命令很难记,博主写了一个添加和删除防火墙端口的脚本,有需要的小伙伴可以下载下来使用。

脚本工具下载

安装数据库完成之后,获取数据库默认密码:

启动Mysql服务 : systemctl start mysqld
查看MySQL服务器的状态: systemctl status mysqld
设置开机启动:systemctl enable mysqld
获取随机密码 :grep 'temporary password' /var/log/mysqld.log

登录数据库
密码就是上面的获取的密码

mysql -uroot -p   #进入数据库

进入数据库只有最好将默认密码更改为熟悉的密码。

ALTER USER '用户名'@'localhost' IDENTIFIED BY '密码';
mysql5.7 密码策略一般为必须大小写加数字及特殊符号,线上服务不建议修改策略

开启远程访问

grant all on *.* to '用户名'@'%' identified by '密码';

创建从数据库连接账户:

 GRANT REPLICATION SLAVE ON *.* to '从机账户'@'从库ip' identified by '从机密码';

从数据库只需要赋予从库复制权限就可以了,从库ip可以指定具体ip也可以配置ip段    例如:192.168.2.*

现在就可以先用链接工具链接测试一下。

接下来对主数据库进行配置:

主数据库配置

我的配置文件:

主数据库配置

配置可按照自己的需求进行修改

[mysqld]
#开启二进制日志
log-bin=mysql-bin
#标识唯一id(必须),一般使用ip最后位
server-id=129
#不同步的数据库,可设置多个
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
#指定需要同步的数据库(和slave是相互匹配的),可以设置多个
binlog-do-db=test
#设置存储模式不设置默认
binlog_format=MIXED
#日志清理时间
expire_logs_days=7
#日志大小
max_binlog_size=100m
#缓存大小
binlog_cache_size=4m
#最大缓存大小
max_binlog_cache_size=521m

记住一定要进行重启数据库,不然不会生效。

systemctl start mysqld   #重启数据库

重启之后,进入查看主数据库配置是否生效:

show master status;
从数据库配置

对数据库密码修改参考上面主数据库配置即可。

接下是配置文件

在这里插入图片描述

server-id=130
#log-bin=mysql-bin 
replicate-ignore-db=mysql 
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate_do_db=test 
innodb_flush_log_at_trx_commit=2 
sync_binlog=1000 
slave_parallel_workers=4 
slave_parallel_type=logical_clock 
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

具体配置可以看图片说明
在这里插入图片描述

接下来重启从数据库服务

systemctl start mysqld   #重启数据库

接下来设置从数据同步的主数据库信息:
同步二进制文件名:即查看主库信息中的file名字
同步的进度:即查看主库信息中的Positon数字
(最好将数据库中的数据库信息先同步到从数据库)

stop slave; #先停止从库复制

change master to master_user='主库中设置的从库账号',master_password='主库中设置的从库密码',master_host='主库地址',master_port=3306,master_log_file='同步二进制文件名',master_log_pos=同步的进度; 

start slave;#启动从库复制

查看主库状态:

show slave status\G;

当Slave_IO及Slave_SQL的状态都为Yes,表明设置成功。

原创更新在博主博客站,有需要的小伙伴关注一波,不定时更新文章。博主博客站

如果有帮到你,欢迎关注博主的公众号“java云端”,不定时更新java技术。

qrcode_for_gh_5789d53b7887_258

没有梦想的咸鱼,一辈子都是咸鱼,拥有梦想的咸鱼,说不定就是小鱼干。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值