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

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

主从复制的原理

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 -

最新文章

  1. gulp入门小记
  2. *HDU1151 二分图
  3. Java中事务的概念
  4. 联通宽带家庭网关HG110-B破解步骤
  5. jq实现动态添加样式
  6. window下python 扩展库安装 使用第三方镜像源
  7. dzzoffice的树型结构用户管理设计
  8. String 中的秘密
  9. MySQL Innodb 并发涉及参数
  10. Jmeter新建用例图示
  11. memcached讲解
  12. jQuery与原生JS相互转化
  13. Codeforces Round #441 Div. 1
  14. SQL-学习过程-001
  15. exec函数
  16. Ping服务
  17. Hibernate_day02--Hibernate事务操作_api使用
  18. tensorboard实现训练的可视化
  19. python 学习笔记 if语句
  20. 【转】XML的几种读写

热门文章

  1. Redis(十五)Redis 的一些常用技术(Spring 环境下)
  2. django-模板之include标签(十五)
  3. Go语言入门:Hello world
  4. java常用类String
  5. 图片瀑布流,so easy!
  6. Ubuntu16.04下nvidia驱动+nvidia-docker+cuda9+cudnn7安装
  7. Python基本数据结构之字典
  8. [转载]2.6 UiPath循环嵌套的介绍和使用
  9. python——inspect模块
  10. PHP array_multisort实现二维数组排序