什么要进行数据库的主从同步?
防止单点故障造成的数据丢失
主从复制的原理
MySQL从数据库开启I/O线程,向主服务器发送请求数据同步(获取二进制日志)
MySQL数据库开启I/O线程回应从数据库
从数据库得到主的二进制日志,写入中继日志
从服务器开启SQL线程将日志内容执行,实现数据同步
环境准备
CentOS 7.4 操作系统
MySQL5.7 数据库
在VMware虚拟机中部署了两台操作系统
打开MySQL官网:https://www.mysql.com/
点击DOWNLOADS,进入以下页面
点击MySQL communityDownloads>>,进入下载页面
随后点击MySQL community Server,进入下载页面
默认情况下,会根据系统选择数据库,正如现在所看到的,数据库的最新版本是8.0.18,点击上面的小按钮
会转到其他版本
在这里我选择的是MySQL5.7版本
相关的下载文档在:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
下载后,MySQL安装的是默认安装的是8.0.18的版本所以,我们要更改一下yum源:mysql-community.repo
我们把MySQL5.7版本的enable=0改为enable=1,把MySQL8.0版本的enable=1改为enable=0;然后:wq保存
然后运行 yum install -y mysql-community-server 就可以通过yum源安装了。
安装后,运行 yum list installed |grep mysql 查看是否安装完成
systemctl start mysql 运行mysql ,通过systemctl status mysql 查看mysql是否启动
通过更改mysql的配置文件 (/etc/my.cnf)更改root密码
在[mysql]下添加skip-grant-tables,这样重启MySQL之后,就可以以root用户无密码进入MySQL了
进入MySQL后,通过update修改mysql库下的user表中的authentication_string值
具体如下。
然后,root用户就可以以新设置的密码登录MySQL了(mysql须重启,并且把my.cnf配置文件恢复)
这就是第一步安装MySQL的全部过程
之后,我们要进行主从复制的配置
配置前,我们应该保证两台服务器的时间设置一致
通过ntp时间同步服务器设置
ntpdate 主服务器IP
主服务器配置
[mysqld]
log-bin=mysql-bin
log-slave-updates=true
server-id =
给从服务器授权
从服务器上配置
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
server-id=
change master to master_host='192.168.94.145',master_user='myslave',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=1026;
这样主从同步就完成了
安装MySQL的shell简单脚本
#! /bin/bash
#action yum install mysql
read -p 'please the mysqlcase directory' dictory
installed=' https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm'
wget $installed -O $dictory
rpm -Uvh $dicrory/ mysql80-community-release-el7-.noarch.rpm
sed -i '28s/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo
sed -i '21s/enabled=0/enabled=1/' /etc/yum.repos.d/mysql-community.repo
yum install -y mysql-community-server
sed -i '5a skip-grant-tables' /etc/my.cnf
systemctl start mysqld
mysql -u root -