废话不说,直接干货
准备工作
先准备两台服务器:(教程演示的为博主自己搭建的两台centos7.2系统的虚拟机)
master ip 192.168.5.129
slave ip 192.168.5.130
需要保证两台机器再同一网关下,并且可以相互ping通。(这里就不讲解如何查看了,网上很多)
安装数据库
本来博主准备写一个mysql自动安装的脚本,奈何水平有限,没有完成,那就先一步一步安装msql吧。
- 下载rpm源
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
- 进行安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
- 进行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,表明设置成功。
原创更新在博主博客站,有需要的小伙伴关注一波,不定时更新文章。博主博客站