Linux部署MySQL主从-主主

Posted 啊脑袋_YA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux部署MySQL主从-主主相关的知识,希望对你有一定的参考价值。

目录

前言

一、准备工作

1、下载资源包

2、创建个人目录

二、安装MySQL

1、安装所有RPM包

 2、启动MySQL服务

3、登入MySQL并修改密码

4、修改密码

5、添加远程连接权限

6、服务器开放MySQL端口

三、MySQL的主-从配置

1、修改配置文件

2、重启MySQL服务

3、配置同步

四、MySQL的主-主配置

1、修改配置文件

2、配置同步


前言

之前也踩过不少坑,有些写的都不太全面,导致搭建不成功,所以特别记录一下

当前系统为Centos7

名称IP
mysql(主)192.168.137.100
MySQL(备)192.168.137.101

MySQL的主从配置比较简单,我们从安装开始一步步来

 

一、准备工作

1、下载资源包

因为平时操作并不能连接外网,所以全部都使用rpm包安装。

安装MySQL所需RPM包,提取码:jk00。http://链接:https://pan.baidu.com/s/1JuzcxVhj1Y4mPzZpb0MCjA

2、创建个人目录

在根目录“/”下,创建user文件夹,然后将RPM包全部放到user文件夹下,也可以跳过此步,这只是我的个人习惯而已

mkdir /user

 

二、安装MySQL

1、安装所有RPM包

rpm -Uvh  /user/*.rpm

 

 2、启动MySQL服务

systemctl start mysqld

注:不同版本的名称可能不同

 

3、登入MySQL并修改密码

# 查看root密码
grep "password" /var/log/mysqld.log

红框内为初始密码(每次安装的初始密码都不相同)

# 登入MySQL
mysql -u root -p

 

输入刚刚得到的密码按回车就登入成功了

 

4、修改密码

如需要设置简单密码,需要先修改密码验证策略,因为密码太弱会修改失败,若直接设置复杂密码可跳过这一步

# 修改MySQL 8.0版本密码验证策略(有的版本不同,其他版本请自行百度搜索)
set global validate_password.policy=0;
set global validate_password.length=1;

我这里设置的是123456方便演示

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

退出MySQL连接使用exit即可

 

5、添加远程连接权限

CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

 

6、服务器开放MySQL端口

MySQL的默认端口为3306

# 开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
# 重启防火墙
firewall-cmd --reload

注:修改防火墙配置后需要重启防火墙

 

然后使用工具进行连接测试,我这里使用的是Navicat for MySQL

可以看到这里已经显示连接成功了

可能会用到的其他命令

# 启动MySQL
systemctl start mysqld

# 停止MySQL
systemctl stop mysqld

# 重启MySQL
systemctl restart mysqld

# 查看MySQL状态
systemctl status mysqld

以上为MySQL安装步骤,主备相同,接下来进行MySQL的主-从配置

--------------------------------------------------------------------------------------------------------------

三、MySQL的主-从配置

1、修改配置文件

文件路径:/etc/my.cnf

vi /etc/my.cnf

MySQL()配置文件

server-id = 10
log-bin = mysql-bin

binlog-ignore-db=mysql
binlog_ignore_db=information_schema
binlog_ignore_db=performation_schema
binlog_ignore_db=sys

binlog_format= MIXED

简单讲解一下:

server-id需要唯一

log-bin为开启MySQL的binlog日志

binlog-ignore-d为不记录指定的数据库的二进制日志,简单来说就是不同步指定的数据库

binlog_format为同步模式,一共有3种(STATEMENT模式,ROW模式,MIXED模式),我们选择MIXED模式,此模式是将其他两种模式混合使用

 MySQL()配置文件

server-id = 11

2、重启MySQL服务

systemctl restart mysqld

3、配置同步

当前位置MySQL(

首先进入MySQL

mysql -uroot -p

添加MySQL(备)的连接权限(备机IP为192.168.137.101),等会在备机上配置时会使用到

CREATE USER 'master_101'@'192.168.137.101' IDENTIFIED WITH mysql_native_password BY '123456';
grant replication slave on *.* to 'master_101'@'192.168.137.101';
flush privileges;

这一步是为了让MySQL(备)能连接到MySQL(主),所以这个IP为备机的IP

然后查看状态和二进制文件

show master status;

记录下红框中的两个参数,等会在备机上配置时会使用到

当前位置MySQL(

同样是先进入MySQL,这里就省略了,上面有

配置同步:

简单讲解一下配置

master_host为主机的IP:本文的是192.168.137.100

master_user为主机配置的同步用户名:本文的是master_101

master_password为主机配置的同步用户的密码:本文的是123456

master_log_file为刚刚红框中的内容:本文的是mysql-bin.000001

master_log_pos为刚刚红框中的内容:本文的是156

change master to master_host='192.168.137.100',master_user='master_101',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=156;

# 启动slave
start slave;
show slave status\\G;

图中红框内的为Yes就是配置成功

以上为MySQL的主从配置,配置的时候需要注意一些细节不要漏掉了

接下来进行MySQL的主-主配置

--------------------------------------------------------------------------------------------------------------

四、MySQL的主-主配置

MySQL的主-主配置只需要在主-从配置的基础上将主的配置加到备机就可以,我们来操作一下,我不太会用文字描述

1、修改配置文件

MySQL()配置文件

主机的配置不变

MySQL()配置文件

server-id = 11
log-bin = mysql-bin

binlog-ignore-db=mysql
binlog_ignore_db=information_schema
binlog_ignore_db=performation_schema
binlog_ignore_db=sys

binlog_format= MIXED

备机配置文件只有server-id与主机不同,其他相同

注:修改配置文件后,需要重启MySQL服务

# 重启mysql服务
systemctl restart mysqld

2、配置同步

当前位置MySQL(

同样是先进入MySQL,这里就省略了,上面有

添加MySQL(主)的连接权限(主机IP为192.168.137.101),等会在备机上配置时会使用到

CREATE USER 'master_100'@'192.168.137.100' IDENTIFIED WITH mysql_native_password BY '123456';
grant replication slave on *.* to 'master_100'@'192.168.137.100';
flush privileges;

设置简单密码的时候可能会报错,只需要修改一下密码验证策略就好了

这一步是为了让MySQL(主)能连接到MySQL(备),所以这个IP为主机的IP

然后查看状态和二进制文件

show master status;

记录下红框中的两个参数,等会在主机上配置时会使用到

当前位置MySQL(

同样是先进入MySQL,这里就省略了,上面有

配置同步:

change master to master_host='192.168.137.101',master_user='master_100',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=866;

# 启动slave
start slave;
show slave status\\G;

图中红框内的为Yes就是配置成功

以上为MySQL的主-主配置,配置的时候需要注意一些细节不要漏掉了

本篇到此结束,为了防止忘记,特此记录一下,按照本篇来配应该不会有搭不成功的

以上是关于Linux部署MySQL主从-主主的主要内容,如果未能解决你的问题,请参考以下文章

部署MySQL主主双向主从复制 M-M

MySQL 主从同步 - 概念和原理介绍 以及 主从/主主模式 部署记录

Linux中详细部署mysql主从

MySQL主从复制与主主复制

linux Mysql 主从复制 原理介绍和步骤详解

Mysql的主主备份与主从备份--同步