Redhat 7安装Mysql-5.7.17配置主从同步
1、环境准备工作。安排2台服务器,分别命名为pc68,pc77,pc68为主服务器,pc77为从服务器。pc68服务器ip地址为192.168.4.68/24,pc77服务器ip地址为192.168.4.77/24.在主从服务器上,准备mysql的安装包。我此次试验使用的是mysql-5.7.17版本。
重点:此次试验环境,请关闭selinux,防火墙。
mysql的安装,在pc68的服务器上,解压安装包
解压后的rpm包集合如下
切记勿安装server-minimal。此处安装包没有,所以不需要删除。安装mysql之前,请确保你的服务器上没有mariadb或者其他版本的mysql服务器。如果有,请卸载,删除配置文件,lib库里面的文件。安装mysql会有依赖程序,如下。
使用yum list | egrep -i perl | egrep -i "Data|JSON",查询出依赖包的名字。安装
yum -y install perl-Data-Dumper.x86_64 perl-JSON.noarch 进行依赖包的安装
rpm -Uvh mysql-community-* 升级安装mysql的rpm包
安装完毕。请在pc77服务器上,同理安装mysql。
2、在主服务器pc68,起服务,mysql首次启动服务,会在mysql的日志文件里面提供mysql的初始密码。
Systemctl restart mysqld
egrep -i "password" /var/log/mysqld.log
连接mysql数据库。
第一次使用数据库,会被mysql数据强制要求更改密码。否则出现以下提示
OR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
停止mysql服务 systemctl stop mysqld
修改配置文件,路径为 /ect/my.cnf
重启mysql服务。
连接mysql数据库,修改root帐号密码为123456
Pc77服务器同样操作,但pc77 不需要开启binlog日志和定义日志模式。修改mysql root密码为123456.
- 主从同步,要求主mysql数据库的数据,与从mysql数据库的数据保持一致。否则同步的IO线程或者SQL线程会因为错误而停止工作。导致主从同步失败。目前本次测试的pc68和pc77的mysql数据库都是初始库,两者是保持一致的。
在pc68的数据库上,查询本机作为主库的属性。
在主数据库上创建从数据库连接的账密,并且授予同步权限。
如图所示,授予权限为 replication slave帐号pc77 在 192.168.4.77 上登录,密码为111111
我们先在pc77服务器上测试,是否能连接上
登录成功,由于权限为同步,所以只能查询到一个虚拟的库。pc68的配置到此结束。
- 进行从数据库的配置,定义从数据库的属性以及怎么样连接住数据库
登录pc77从数据库,查询从数据库属性,得到的显示为空
在pc68上查询主数据库主属性
file为binlog日志的文件,position为数据偏移量。
在pc77数据库服务器上定义从属性
此命令可以解读为,改变主服务器为主服务主机为192.168.4.68,使用账号pc77,密码111111来连接主服务器数据库,IO线程读取文件为master68.000001,偏移量为692.
查询从数据库上从属性
可以看到,IO线程是NO,SQL线程状态也是NO
启动从属性
再次查询从属性
到此,mysql数据库,主从同步,设置完毕。我们来验证一下。
在从库上show databases;查询库
在主库上show databases;查询库
结果如下。
我们在主库上,创建一个新的数据库 gamedb,在数据库gamedb下创建表格g1,插入表记录jack。
看看从库上是否能查询到jack
实验成功!
Mysql主从同步的原理,就是主数据库服务器上开启binlog日志。从数据库定义好从属性,通过IO线程同步主数据库binlog日志,把日志里面的sql命令同步到本级的中继日志里面。再利用sql线程。执行中继日志里面的sql命令,从而达到同步。