Mysql主从备份搭建全流程
文章目录
环境准备
本人使用环境为VM中的两台虚拟机,系统为CentOS7,最小镜像。IP分别以128和129结尾(IP获取策略为DHCP).预期将129设置为主机,128设置为备机。验证主从同步,读写分离。下面开干。文章原创,有疑问可以留言交流。
配置mysql源
进下方的网站,根据自己的实际系统选择。复制内容,新建文件/etc/yum.repos.d/mysql-community.repo,粘贴到其中。(本人为centos7,其他系统文件位置不一样,具体看下网址的选框)
https://mirrors.cnnic.cn/help/mysql/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4kmiShSy-1615197266808)(C:\Users\Jason\AppData\Roaming\Typora\typora-user-images\image-20210308152431477.png)]
本人安装的版本为5.7,可以将8.0的enablef的1修改为0;
系统和我一样的同学们也可以直接复制
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-tools-community]
name=MySQL Tools Community
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-tools-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-5.6-community]
name=MySQL 5.6 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.6-community-el7-$basearch/
enabled=0
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-5.7-community]
name=MySQL 5.7 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-8.0-community]
name=MySQL 8.0 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
使用命令安装
yum install mysql-community-server
# 安装完成后直接启动
systemctl start mysqld.service
systemctl status mysqld.service
# 能看到对应的active
等待安装完成
修改密码
安装完成后 启动服务,这时候发现密码不知道,网上看了些教程,如何在文件中查找创建之初的默认密码,找到密码发现也没搞得定。直接修改配置文件。跳过登录验证密码。
# 打开yum安装的mysql的默认配置文件
vi /etc/my.cnf
# 在结尾增加一行 表示登录跳过密码验证
skip-grant-tables
# 重启mysql服务
systemctl stop mysqld.service
systemctl start mysqld.serice
# 继续登录mysql服务
mysql -uroot -p
# 出现密码输入框,啥都不输入,直接回车进入mysql控制台
use mysql;
update user set authentication_string=password('xxx') where user='root';
quit;
修改完,去/etc/my.cnf删掉对应的新增内容
再次重启服务
systemctl stop mysqld.service
systemctl start mysqld.serice
再次尝试登录,使用刚刚设置的密码,应该可以正常登录。至此基础环境搭建完成。
主从备份配置
- 修改master129的配置文件,还是my.cnf,在底部追加两行
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
- 同样的,修改salve128的配置文件
log-bin=mysql-bin #开启二进制日志(salve的binlog不开启也不影响主从备份)
server-id=2 #设置server-id
-
在master上新增一个同步账号
use mysql; -- 账号为sync,指定ip为192.168.212.128,密码为123456 CREATE USER 'sync'@'192.168.212.128' IDENTIFIED BY '123456'; -- 执行报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements -- 密码强度太低。。解决该问题 -- 查看当前密码规则设置 SHOW VARIABLES LIKE 'validate_password%'; -- 设置全局密码强度为低 set global validate_password_policy=LOW; -- 设置密码验证长度为6 set global validate_password_length=6; -- 执行完再次查看当前密码规则设置 SHOW VARIABLES LIKE 'validate_password%'; -- 再次执行新增用户操作 CREATE USER 'sync'@'192.168.212.128' IDENTIFIED BY '123456'; --提示成功,结束。
修改前后状态对比
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E1qDkOUw-1615197266809)(C:\Users\Jason\AppData\Roaming\Typora\typora-user-images\image-20210308170651272.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WCga3EXf-1615197266810)(C:\Users\Jason\AppData\Roaming\Typora\typora-user-images\image-20210308170810298.png)]
-
查看129主机状态
SHOW MASTER STATUS;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5eyj9Wlm-1615197266812)(C:\Users\Jason\AppData\Roaming\Typora\typora-user-images\image-20210308171856363.png)]
5.从机执行如下语句
CHANGE MASTER TO
MASTER_HOST='192.168.212.129',
MASTER_USER='sync',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=408;
然后查看slave的状态
-- \G是为了格式化看得清楚
show slave status\G;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6MXvzqdG-1615197266813)(C:\Users\Jason\AppData\Roaming\Typora\typora-user-images\image-20210308174034693.png)]
同步状态存在问题
继续解决该问题
在主机执行
mysql> show grants for 'sync'@'192.168.212.128';
+------------------------------------------------+
| Grants for sync@192.168.212.128 |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'sync'@'192.168.212.128' |
+------------------------------------------------+
1 row in set (0.00 sec)
-- 执行修改权限语句
mysql> GRANT REPLICATION SLAVE ON *.* TO 'sync'@'192.168.212.128' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
-- 从机此时执行
start slave;
show slvae status\G;
修改完状态如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVtgIKoB-1615197266814)(C:\Users\Jason\AppData\Roaming\Typora\typora-user-images\image-20210308174605958.png)]
验证阶段
通过以上的配置来看,已经成功的操作了主从备份
具体需要再次验证
-- 在主机执行
create database test;
-- 在从机执行
show databases;
发现slave中已经多出了test库。
读写分离
待补充。。。