Mysql主从备份搭建全流程

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

再次尝试登录,使用刚刚设置的密码,应该可以正常登录。至此基础环境搭建完成。

主从备份配置

  1. 修改master129的配置文件,还是my.cnf,在底部追加两行
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
  1. 同样的,修改salve128的配置文件
log-bin=mysql-bin #开启二进制日志(salve的binlog不开启也不影响主从备份)
server-id=2 #设置server-id
  1. 在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)]

  1. 查看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库。

读写分离

待补充。。。

上一篇:Linux上安装Mysql


下一篇:Unity and Cooperation Are the International Community's Most Potent Weapon to Overcome the Pand