Linux配置Mysql的主备搭建

摘要:
//blog.csdn.net/qq25432245/article/details/86258924主从备份概念:它是一个主从模式的数据库应用程序。主数据库数据与从数据库数据完全一致。实施数据的多个备份以确保数据安全。不同的数据库引擎可以在主[InODB]和从[MyISAM]中使用,

前提声明:linux为redhat7.5,mysql为5.7.33

     主机IP(Master):192.168.122.131

        从机IP(Slave):192.168.122.132

mysql安装包链接和操作文档:

链接:https://pan.baidu.com/s/1dJX2NZ0Gc8fn_BQIRS8aSQ
提取码:1234

参考原文链接:https://blog.csdn.net/qq_25432245/article/details/86258924

主从备份概念:

主从备份: 就是一种主备模式的数据库应用. 主库(Master)数据与备库(Slave)数据完全一致. 实现数据的多重备份, 保证数据的安全. 可以在 Master[InnoDB]和 Slave[MyISAM]中使用不同的数据库引擎,实现读写的分离。

开始搭建

配置主机Master

1、分别在两个服务器上安装mysql,具体安装教程请参考我的另一篇博客:https://www.cnblogs.com/qcq0703/p/14290834.html

2、修改主机Master的/etc/my.cnf配置文件

vi /etc/my.cnf

添加两行代码,加以说明,server-id: MySQL 服务唯一标识,唯一标识是数字. 自然数配置的时候有要求,单机使用:server-id 任意配置,只要是数字即可,主从使用:唯一标识数字必须小于 Slave 唯一标识数字,log_bin: 日志文件命名, 开启日志功能。此日志是命令日志。就是记录主库中执行的所有的 SQL命令的。

log_bin=master_log
server-id=1

如下图

Linux配置Mysql的主备搭建第1张

 3、重启主机mysql服务

service mysqld restart

4、访问数据库

/opt/install/mysql-5.7.33/bin/mysql -u root -pFwmCard@1234

5、创建slave用户,这里@后边最好用%,原文链接说是必须写从机IP但是,我写了之后,根本无法登陆,最终也无法实现主从搭建,改成%号后就没问题了。这里设置完成后,可以直接用这个slave用户登陆一下试试

grant all privileges on *.* to 'slave'@'%' identified by 'slave' with grant option;

6、刷新配置

flush privileges;

7、查看master信息,配置从机的时候要使用到以下信息的哟。需要注意了。

show master status;

Linux配置Mysql的主备搭建第2张

从机slave配置

1、同样,修改从机mysql的配置文件

vi /etc/my.cnf

从机也添加两行代码,用于主备切换使用

server-id=2
log_bin=master_log

如下图

Linux配置Mysql的主备搭建第3张

 2、重启从机服务

service mysqld restart

3、访问从机数据库

/opt/install/mysql-5.7.33/bin/mysql -u root -pFwmCard@1234

4、配置主库信息,注意标红的啊,第一个是主机IP,最后两个标红的就是主机最后一步图片里的值,我的没对应上,那是因为我一开始的时候没有截图,在写博客的时候才进行截图,导致这些值有些改变了

change master to master_host='192.168.122.131',master_user='slave',master_password='slave',master_log_file='master_log.000001';

5、刷新配置

flush privileges;

6、启动slave,这些操作都是在mysql中操作的,不要退出去

start slave;

7、查看slave配置

show slave status G

输出结果,后面的省略了一部分,重点看标红的,那两个参数一定要是yes,就代表配置完成了。

复制代码
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.122.131
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master_log.000005
          Read_Master_Log_Pos: 1440
               Relay_Log_File: localhost-relay-bin.000008
                Relay_Log_Pos: 1607
        Relay_Master_Log_File: master_log.000005
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          .........
复制代码

这里又要敲黑板了啊!!!以上操作只能实现,从机备份主机的数据!!!

想要主从自由切换,需要把从机的配置再往主机操作一遍,就实现主备自由切换!!!

主机操作的第5步,在从机配置一遍。

从机的第4步,在主机配置一遍。注意修改ip和master_log_file='master_log.000001'这两个值

设置完成后就可以互为主备,都能够操作数据库,备份数据库了。

遇到的坑,我这两个服务器是通过克隆配置的,导致mysql的UUID是一样的,上面的输出结果提示UUID重复,那么就需要设置一下auto.cnf,将里面的UUID随便写一个不一样的就可以了。

更改mysql用户的密码:

update user set authentication_string=password("slave") where user='slave';

然后刷新权限

flush privileges;  #刷新权限

测试的时候,从主机修改删除一个数据库,然后查看从机的数据库是否对应修改,只要同步修改了,就代表正常了。

如果没有设置成功,需要排错的话可以参考这个链接很值得借鉴:https://blog.csdn.net/mbytes/article/details/86711508

前几天在测试主从服务器Mysql同步时遇到了从数据库显示Slave_IO_Running:Connecting; Slave_SQL_Running:Yes的问题。

下面列举几种可能的错误原因:

1.网络不通
2.账户密码错误
3.防火墙
4.mysql配置文件问题
5.连接服务器时语法
6.主服务器mysql权限

我的服务器ip:
主服务器ubuntu:192.168.16.105
从服务器ubuntu:192.168.16.115

逐项排除:
1:因为从服务器是虚拟机,网卡选择了桥接模式,ip地址确认在同一网段中,且互ping能通,排除网络问题。
2:主服务器创建了账号slave密码slave的权限账号,在主服务器可以登录slave帐号,排除帐号密码问题。
3:终端输入 sudo ufw disable 关闭防火墙, sudo ufw status查看防火墙,确认已关闭,排除防火墙原因。(sudo ufw enable打开防火墙)

Linux配置Mysql的主备搭建第6张

4:配置文件
(1)查看主服务器配置文件:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,看第83行:确认log_bin和server-id已经取消注释,设置无错误。

Linux配置Mysql的主备搭建第7张

(2)查看从服务器:

Linux配置Mysql的主备搭建第8张

此处server-id只需要与主服务器不同即可,我设置为ip的末尾数字115。确认配置无错误,排除。

5.语法:
(1)查看主服务器二进制日志信息show master status;

Linux配置Mysql的主备搭建第9张

(2)设置从服务器链接到master主服务器,确认语句无错误,排除。
注:
master_host:主服务器Ubuntu的ip地址
master_log_file: 前面查询到的主服务器日志文件名
master_log_pos: 前面查询到的主服务器日志文件位置

change master to master_host='192.168.16.105', master_user='slave', master_password='slave',master_log_file='mysql-bin.000011', master_log_pos=154;

6.权限:
(1)主服务器查看slave帐号,已设置登录ip为%

Linux配置Mysql的主备搭建第10张

(2)在从服务器上登录主服务器slave帐号测试:

Linux配置Mysql的主备搭建第11张

无法登录主服务器!打开主服务器配置文件发现43行有一条绑定主机ip的语句,问题出在这里!!!给它注释掉!保存退出。重启主服务器数据库:sudo service mysql restart

Linux配置Mysql的主备搭建第12张

(3)重新测试从服务器上登录主服务器slave帐号:登录成功!
(4)重新进入从服务器链接master主服务器,start slave开启主从同步,输入show slave status G查看从服务器状态,若开启不成功先stop slave,再start slave,可以看到Slave_IO_Runninghe和Slave_SQL_Running状态都是Yes,同步成功

Linux配置Mysql的主备搭建第13张

主从异常解决参考链接:https://blog.csdn.net/sj349781478/article/details/79492895

免责声明:文章转载自《Linux配置Mysql的主备搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一、Haproxy基础介绍springboot整合filter下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL的瑞士军刀(转)

这里主要讲mysql运维中的一些主要工具,这些工具可能大家都用过,特别是系统管理员或者做linux服务器维护的同学可能都知道这些小工具,这 里讲得会比较多一些,除了系统监控的小工具,还包括一些mysql的工具,甚至深入一些的工具也会讲到,重点是大家听完了后,一定要去自己动手实践一下, 这样才有意义,熟能生巧。 光听说过是不行的,还得都要去实践,实践出真知,...

mysql分组后获取每个组排序后的第一条数据(整行)

https://blog.csdn.net/persistencegoing/article/details/92764058 All rights reserved.No part of this article may be reproduced or distributed by any means,or stored in a database o...

基于PySpark的网络服务异常检测系统 (四) Mysql与SparkSQL对接同步数据 kmeans算法计算预测异常

基于Django Restframework和Spark的异常检测系统,数据库为MySQL、Redis, 消息队列为Celery,分析服务为Spark SQL和Spark Mllib,使用kmeans和随机森林算法对网络服务数据进行分析;数据分为全量数据和正常数据,每天通过自动跑定时job从全量数据中导入正常数据供算法做模型训练。 使用celery批量导入...

安装mysql

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 一、Window版本 1、下载 1 MyS...

Mysql 主从复制

mysql主从复制好处:1. 如果是单个数据库,如果挂了就凉凉2.主备数据库,挂了一台主库,我可能还有很多个备用的数据库2,读和写分开,减少了数据库的压力 实验准备:主机一(主) : 192.168.11.70主机二(从): 192.168.11.224都装有Mariadb 第一步-主机的操作: 1.在matser主库上的操作,开启主库功能先关闭服务sys...

Linux 安装 docker 后的步骤

预计阅读时间: 16分钟 本节包含用于配置 Linux 主机以使其与 Docker 配合使用的可选过程。 以非 root 用户管理 Docker Docker 守护程序绑定到 Unix 套接字而不是 TCP 端口。默认情况下, Unix 套接字由用户拥有 root ,其他用户只能使用来访问它 sudo 。 Docker 守护程序始终以 root 用户身份运...