MySQL数据库的主从同步

什么要进行数据库的主从同步?

防止单点故障造成的数据丢失

主从复制的原理

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 =11

给从服务器授权

 从服务器上配置

1 relay-log=relay-log-bin
2 relay-log-index=slave-relay-bin.index
3 server-id=12

 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简单脚本

 1 #! /bin/bash
 2 #action yum install mysql
 3 read -p 'please the mysqlcase directory' dictory
 4 installed=' https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm'
 5 wget $installed -O $dictory
 6 rpm -Uvh $dicrory/ mysql80-community-release-el7-3.noarch.rpm
 7 sed -i '28s/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo
 8 sed -i '21s/enabled=0/enabled=1/' /etc/yum.repos.d/mysql-community.repo
 9 yum install -y mysql-community-server
10 sed -i '5a skip-grant-tables' /etc/my.cnf
11 systemctl start mysqld
12 mysql -u root -
原文地址:https://www.cnblogs.com/linerbaby/p/11731967.html