CentOS7安装MySQL并配置主从复制
一、MySQL主从复制原理
1.1基于语句的复制:在主服务器上执行的SQL语句,再在从服务器上执行一次,默认采用语句复制
1.2 基于行的复制:把改变的内容复制过去,而不是把命令再在从服务器上执行一遍
1.3 混合类型复制:一旦发现基于语句无法精确的复制时,就会采用基于行的复制
二、MySQL复制的过程
2.1 在每个事务完成之前,master(主服务器)在二进制日志中记录这些改变
2.2 slave(从服务器)开启IO线程,将master的binary log(二进制日志)复制到中继日志
2.3 SQL线程从中继日志中读取事件,更新slave的数据库
三、安装MySQL
3.1 安装wget
yum -y install wget
3.2 下载MySQL的rpm包
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
3.3 安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum -y install mysql-server
3.4 启动MySQL
systemctl start mysqld
systemctl enable mysqld
3.5 第一次登录MySQL会在MySQL的日志中提供初始密码
grep password /var/log/mysqld.log
3.6 登录MySQL
mysql -uroot -pllq_eE_Jy4u3
3.7 第一次登录进来会提示修改密码
根据提示修改密码,密码必须要有字母,大小写,符号等,否则修改不成功
alter user 'root'@'localhost' identified by '1234Aa..';
3.8 现在就能正常使用了
四、搭建MySQL的主从复制
4.1 mysql主从复制的前提
主与从时间必须相同
主从之间必须能网络互通
4.2 同步时间
如果数据库不能连接外网就安装配置ntp
ntpdate ntp1.aliyun.com
4.3 配置主服务器
4.3.1 修改配置文件
vim /etc/my.cnf
添加:
server-id =1
log-bin=master-bin
log-slave-updates=true
重启MySQL
systemctl restart mysqld
4.3.2 登录MySQL,授权从服务器
grant replication slave on *.* to 'myslave'@'192.168.1.%' identified by '123456';
myslave:从服务器名
192.168.1.%:从服务器可登录的网段/ip
123456:从服务器登录的密码
4.3.3 刷新MySQL
flush privileges;
4.3.4 查看主服务器状态
show master status;
file : 日志文件
position:偏移量
4.4 配置从服务器
4.4.1 修改配置文件
vim /etc/my.cnf
添加:
server-id =2 #ID不能与主服务器相同
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
4.4.2 重启MySQL
systemctl restart mysqld
4.4.3 登录mysql,同步配置
change master to master_host='192.168.1.8',master_user='myslave',master_password='123456',master_log_file='master-bin.000005',master_log_pos=2035;
# master_user:从服务器登录主服务器的登录名
# master_password:从服务器登录主服务器的密码
# master_log_file:刚刚查询出来的日志文件
# master_log_pos:刚刚查询出来的偏移量
4.4.4 启动同步
start slave;
4.4.5 查看slave状态,这两项必须为yes
show slave status\G;
4.4.6 测试同步是否能成功
在主服务器上创建一个库,从服务器能够同步
从创建一个库不能同步到主上
要想实现双方都能同步只需再做一次主从复制,双方调换身份即可
推荐阅读
-
MySQL5.7的安装与配置详细操作步骤
-
Windows10下mysql 5.7.17 安装配置方法图文教程
-
Apache2.4.34 + php 7.28 + MySQL8.0.12 安装及配置
-
CentOS7下 Apache的安装配置方法
-
Gentoo 下安装与配置Nginx+ MySQL + PHP (fastcgi) 环境步骤分享
-
CentOS7 vsftp 安装与配置(视频教程)
-
Mysql5.7.18的安装与主从复制图文详解
-
windows server 2008 64位MySQL5.6免安装版本配置方法图解
-
centos7系统安装配置openvpn服务端
-
MySQL 5.7 zip版本(zip版)安装配置步骤详解