返回顶部
首页 > 资讯 > 数据库 >CentOS7下RPM模式搭建MySQL5.7.28主从复制
  • 908
分享到

CentOS7下RPM模式搭建MySQL5.7.28主从复制

CentOS7下RPM模式搭建MySQL5.7.28主从复制 2021-05-10 11:05:52 908人浏览 才女
摘要

一、配置文件: 主库(192.168.128.111): [client] port=3306 Socket=/approot/data/Mysql/mysql.sock default-character-set=utf8 [mys

CentOS7下RPM模式搭建MySQL5.7.28主从复制

一、配置文件:

主库(192.168.128.111):

[client]
port=3306
Socket=/approot/data/Mysql/mysql.sock
default-character-set=utf8

[mysql]
port=3306
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id=111
# 只能用IP地址检查客户端的登录,不用主机名
# skip_name_resolve=0
# 设置3306端口
port=3306
# 设置mysql数据库的数据的存放目录
#datadir=/var/lib/mysql
#datadir=/approot/data/mysql/data
datadir=/approot/data/mysql
log-error=/var/log/mysqld.log
#socket=/var/lib/mysql/mysql.sock
socket=/approot/data/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid

# 支持符号链接
symbolic-links=0
# 允许最大连接数
max_connections=500
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
character-set-server=utf8
collation-server=utf8_general_ci
# SQL模式
sql_mode=STRICT_TRANS_TABLES,ANSI_QUOTES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO
# 设置时间戳的默认属性
explicit_defaults_for_timestamp=true
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
# 每个innodb表数据单独文件保存
innodb_file_per_table=ON
# 增加每个进程的可打开文件数量
open-files-limit=6000

######################### 主从复制设置 #############################
# 开启mysql binlog功能
log-bin=mysql-bin.log
# binlog记录内容的方式,记录被操作的每一行
binlog_fORMat=MIXED
# 减少记录日志的内容,只记录受影响的列
binlog_row_image=minimal
# 指定需要复制的数据库名为testdb
binlog-do-db=testdb
# binlog过期清理时间
expire_logs_days=7
# 每个binlog日志文件大小
max_binlog_size=100M
# binlog缓存大小 
binlog_cache_size=4M
# binlog最大缓存大小
max_binlog_cache_size=100M
# 不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行
binlog-ignore-db=mysql
# 自增值的偏移量
auto-increment-offset=1
# 自增值的自增量
auto-increment-increment=1
# 跳过从库错误,下面的配置是忽略1062的错误
# slave-skip-errors=1062

从库(192.168.128.112)

[client]
port=3306
socket=/approot/data/mysql/mysql.sock
default-character-set=utf8

[mysql]
port=3306
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id=112
# 只能用IP地址检查客户端的登录,不用主机名
# skip_name_resolve=0
# 设置3306端口
port=3306
# 设置mysql数据库的数据的存放目录
#datadir=/var/lib/mysql
#datadir=/approot/data/mysql/data
datadir=/approot/data/mysql
log-error=/var/log/mysqld.log
#socket=/var/lib/mysql/mysql.sock
socket=/approot/data/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid

# 支持符号链接
symbolic-links=0
# 允许最大连接数
max_connections=500
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
character-set-server=utf8
collation-server=utf8_general_ci
# SQL模式
sql_mode=STRICT_TRANS_TABLES,ANSI_QUOTES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO
# 设置时间戳的默认属性
explicit_defaults_for_timestamp=true
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
# 每个innodb表数据单独文件保存
innodb_file_per_table=ON
# 增加每个进程的可打开文件数量
open-files-limit=6000
# 限制从库只读,但是此限制对拥有SUPER权限的用户均无效。
read_only=ON

######################### 从库配置 #############################
# relay_log的位置和名称,如果值为空,则默认位置在数据文件的目录(datadir) 
relay-log=relay-log
# 定义relay_log的位置和名称
relay-log-index=relay-log.index
# 是否自动清空不再需要中继日志时。默认值为1(启用)
relay_log_purge=1
# 当slave从库宕机后,假如relay-log损坏了,则自动放弃所有未执行的relay-log,并且重新从master上获取日志
relay_log_recovery=1
# 当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入relay_log中继日志里
sync_relay_log=0
# 与sync_relay_log的配置含义相似 
sync_relay_log_info=0

二、安装前准备工作,两台主机都要做

配置网络、防火墙、内核安全

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
#BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
IPV6INIT=no
IPV4_FaiLURE_FATAL=no
NAME=ens33
UUID=a9ef0538-d1ea-4f84-8ce6-9446304c9ed4
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.128.112
GATEWAY=192.168.128.2
IPV6_PRIVACY=no
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
DNS3=8.8.4.4
systemctl restart network
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld

vim /etc/selinux/config
设置:SELINUX=disabled
setenforce 0

三、安装并配置mysql,但一定不要启动,两台安装方法相同

准备安装介质:
mkdir -p /approot/software/
scp -r root@192.168.128.111:/approot/software/mysql/ /approot/software/
或者直接下载后解压也可以
tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar  -C /approot/software/mysql

预先检查卸载mariadb
rpm -qa | grep mariadb
rpm -ev --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
预先检查卸载mysql
rpm -qa|grep -i mysql
rpm -ev --nodeps mysql-commUnity-server-5.7.28-1.el7.x86_64
rpm -ev --nodeps mysql-community-client-5.7.28-1.el7.x86_64
rpm -ev --nodeps mysql-community-common-5.7.28-1.el7.x86_64
rpm -ev --nodeps mysql-community-libs-5.7.28-1.el7.x86_64

安装mysql
cd /approot/software/mysql
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
yum install libaio
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

四、分别配置并启动两台mysql,因为主从都修改默认的datadir,因此需要在启动前进行配置。

分别将主从的配置复制到各自主机的/etc/my.cnf中。

分别在两台主机上创建文件夹并授权

mkdir -p /approot/data/mysql
chown -R mysql:mysql /approot/data/mysql
ll -d /approot/data/mysql

另开一个监视日志的终端,方便查看动态初始化密码
tail -F /var/log/mysqld.log
如果不开,也可以启动后打开查找,或命令查找
grep "passWord" /var/log/mysqld.log

比如查看到结果为:
[Note] A temporary password is generated for root@localhost: bBq*oaqc0ryE

启动mysql服务

systemctl start mysqld
根据上面方法获取到密码登陆mysql:
[root@hadoop100 etc]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.28

修改root密码

set global validate_password_policy=LOW;
set global validate_password_length=5;
set password for root@localhost=password("leizm");
grant all privileges on *.* to "root"@"%" identified by "leizm";
flush privileges;

如果是主库,则在主库上创建个同步数据的账户,用来主从复制,提供给从库访问用。

create user "repl"@"192.168.128.%" identified by "leizm";
grant replication slave on *.* to "repl"@"192.168.128.%";
flush privileges;

两台mysql都启动后就剩下同步了

五、主从同步启动复制,先操作主库、再操作从库

主库上获取同步点

mysql> flush tables with read lock;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 |      715 | testdb       | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql> unlock tables;

从库根据主库同步点执行同步

stop slave;
change master to
 master_host="192.168.128.111",
 master_port=3306,
 master_user="repl",
 master_password="leizm",
 master_log_file="mysql-bin.000004",
 master_log_pos=715;
start slave;
show slave statusG;


上面命令执行结果:
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to
    ->  master_host="192.168.128.111",
    ->  master_port=3306,
    ->  master_user="repl",
    ->  master_password="leizm",
    ->  master_log_file="mysql-bin.000004",
    ->  master_log_pos=715;
start slave;
Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave statusG;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.128.111
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 715
               Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 715
              Relay_Log_Space: 521
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 111
                  Master_UUID: af18a083-66c1-11ea-98c7-0050563D66c2
             Master_Info_File: /approot/data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

同步成功!

有更多的配置信息和常见问题,可参考:

https://blog.csdn.net/sky__liang/article/details/85684615

Https://blog.csdn.net/daicooper/article/details/79905660

https://www.cnblogs.com/cjsblog/arcHive/2018/09/26/9706370.html

https://blog.csdn.net/qq_36441027/article/details/81139209

https://zixuePHP.net/article-440.html

https://blog.csdn.net/juded/article/details/54600294

您可能感兴趣的文档:

--结束END--

本文标题: CentOS7下RPM模式搭建MySQL5.7.28主从复制

本文链接: https://lsjlt.com/news/4966.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CentOS7下RPM模式搭建MySQL5.7.28主从复制
    一、配置文件: 主库(192.168.128.111): [client] port=3306 socket=/approot/data/mysql/mysql.sock default-character-set=utf8 [mys...
    99+
    2021-05-10
    CentOS7下RPM模式搭建MySQL5.7.28主从复制
  • centos7 maiadb主从复制搭建
    需求:由于要使用saltstack,部署环境,先手动搭建了下主从环境,发现原来的word资料都找不到了,所以这次赶紧的记录到博客当中!!环境:两台设备,ip地址分别为:node1:192.168.56.11...
    99+
    2024-04-02
  • MYSQL主从复制的搭建方式
    本篇内容主要讲解“MYSQL主从复制的搭建方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL主从复制的搭建方式”吧!前言:MYSQL的主从复制的原理跟...
    99+
    2024-04-02
  • Linux下搭建MySQL的主从复制(一)
    一从一主模式的搭建1.主从复制原理 1. 从服务器使用IO Thread向主服务器发送请求   2. 主服务器接受到请求之后,将二进制日志文件通过...
    99+
    2024-04-02
  • Mysql主从复制搭建
    1.mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是SQL线程。 主将更改操作记录到binlog里从将主的binlo...
    99+
    2020-09-28
    Mysql主从复制搭建
  • MySQL5.7主从复制-GTID复制搭建
     两台服务器,系统是Redhat6.5,MySQL版本是5.7.18。 1、在主库上,创建复制使用的用户,并授予replication slave权限。这里创建用户repl,可以从IP为1...
    99+
    2024-04-02
  • 主从复制模式下跳过错误
    今天我们主要看主从模式下,几种跳过错误的方法,跳过事务,还是跳过event?这个在之前其实我们一直都是忽略的,这在我们维护主从过程中,很容易就导致主从数据更大的不一致。测试机器5.7.18 主从 gti...
    99+
    2024-04-02
  • MongoDB 主从复制集搭建
    一、Mongodb复制集简介什么是复制集?复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。...
    99+
    2024-04-02
  • 逻辑复制主从搭建
    创建复制用户: CREATE USER 'repl'@'192.168.6.%' IDENTIFIED BY '123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@...
    99+
    2024-04-02
  • Docker搭建Mysql主从复制
    Docker搭建Mysql主从复制 前言 相信我,看完这一篇,mysql主从复制能遇到的错误在我这里都遇到了,docker能遇到的错误在我这里也遇到了,包括centos的错误,看吧,都是成长 do...
    99+
    2023-09-24
    docker mysql 容器 Linux
  • MySQL5.7主从复制-异步复制搭建
      两台服务器,系统是Redhat6.5,MySQL版本是5.7.18。 1、在主库上,创建复制使用的用户,并授予replication slave权限。这里创建用户repl,可以从IP...
    99+
    2024-04-02
  • mysql搭建主从复制(一主一从,双主双从)
    主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器上执行一遍。 流程图 搭建一...
    99+
    2016-07-17
    mysql搭建主从复制(一主一从,双主双从)
  • mysql主从复制环境搭建
    mysql 主从第一次我用不同版本mysql做会出不同步问题,建议用相同版本的mysql做主从主my.cnf文件 (192.168.1.64)mysqld模块加入log-bin=mysql-bin 启动二进...
    99+
    2024-04-02
  • Mysql主从复制搭建过程
    这篇文章主要讲解了“Mysql主从复制搭建过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql主从复制搭建过程”吧! 一、相关概念mysql主从复...
    99+
    2024-04-02
  • 如何搭建mysql主从复制
    搭建mysql主从复制的方法在主从服务器开启时间同步[root@storage  ~]# ntpdate 172.18.0.1主数据库配置使用记事本打开主数据库的my.cnf配置文件,在文件中的[my...
    99+
    2024-04-02
  • mysql主从复制怎么搭建
    要搭建MySQL主从复制,需要按照以下步骤进行操作: 确保主服务器和从服务器上都已安装MySQL。 在主服务器上修改配置文件...
    99+
    2024-04-09
    mysql
  • MySQL 主从复制原理及搭建
    一.主从复制的工作过程:二.MySQL复制类型基于SQL语句的复制基于行的复制混合复制三.实验环境  OS:CentOS 6.5 x64  master:192.168.0.134&nb...
    99+
    2024-04-02
  • redis主从复制的搭建步骤
    这篇文章将为大家详细讲解有关redis主从复制的搭建步骤,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。主从复制的原理在Redis集群中,让若干个Redis服务器去复制另一...
    99+
    2024-04-02
  • 基于GTID的主从复制搭建
    前置检查server-id = 10,master/slave不允许重复log-bingtid-mode = ONenforce-gtid-consistency = ON1,利用mysqlpump复制ma...
    99+
    2024-04-02
  • Mysql搭建主从复制的方法
    本篇内容主要讲解“Mysql搭建主从复制的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql搭建主从复制的方法”吧!主库:192.168.1.1 从库...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作