ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySql8主从搭建(rpm包)

2021-07-09 12:00:02  阅读:222  来源: 互联网

标签:8.0 22 MySql8 community 64 mysql rpm 主从


**

MySql8主从搭建(rpm包)

**
1、资源规划
MySQL资源规划表
在这里插入图片描述
2、下载相关安装包(包括依赖包)
官网地址:https://downloads.mysql.com/archives/community/
mysql-community-libs-8.0.22-1.el7.x86_64
mysql-community-client-plugins-8.0.22-1.el7.x86_64
mysql-community-client-8.0.22-1.el7.x86_64
mysql-community-server-8.0.22-1.el7.x86_64
mysql-community-common-8.0.22-1.el7.x86_64
mysql-community-devel-8.0.22-1.el7.x86_64

3、配置主机名
hostnamectl set-hostname manager --static
hostnamectl set-hostname node –static

4、关闭 SeLinux
setenforce 0 && sed -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config

5、配置hosts文件(所有机子均需要配置)
192.168.1.11 manager
192.168.1.12 node
在这里插入图片描述
6、安装相关开发工具
yum -y install htop iotop iftop lrzsz wget zlib-devel net-tools nc telnet openssl-devel
注:需提前初始化数据盘并建立挂载数据目录,此处略

7、安装时按一下顺序(解决包依赖问题)
rpm -ivh mysql-community-common-8.0.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.22-1.el7.x86_64.rpm

注:若之前安装过MySQL服务,先卸载 rpm -qa|grep mysql|xargs rpm -e --nodeps

8、创建相应目录并授权
mkdir /var/log/mysql #用于存放日志
chown -R mysql:mysql /var/log/mysql
mkdir -p /data/mysql #用于存放数据
chown -R mysql:mysql /data/mysql/
注:均在配置文件中有定义

9、修改配置文件,内容如下
[client]
port = 3306 #指定端口
socket = /tmp/mysql.sock #指定mysql.sock存放路径
default-character-set = utf8 #设置字符集

[mysqld]
user=mysql
port = 3306
datadir = /data/mysql #数据目录,需设置拥有者为mysql,chown -R mysql:mysql /data/mysql/
tmpdir = /tmp
socket = /tmp/mysql.sock # 8版本sock文件默认在/tmp目录下
pid-file = /data/mysql/mysql.pid # 指定pid文件路径
log_error = /var/log/mysql/error.log # 指定错误日志文件路径
slow_query_log_file = /var/log/mysql/slow.log # 指定slow日志文件路径
character-set-server = utf8
default-storage-engine = innodb # 默认存储引擎为innodb
innodb_file_per_table # 使innodb将每个表的数据单独保存,ibd类型的文件主要就是用来保存innodb表中的数据
server-id=1 # 此ID为唯一标识,可以随意取,但不能重复
lower-case-table-names=1 # 表名在硬盘上以小写保存,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上

注:不区分大小写的配置一定要在初始化之前就配置上,要不然后面是配置不上的
sql_mode=“NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES”
slq_mode定义了MySQL应该支持的sql语法,对数据的校验等
NO_AUTO_VALUE_ON_ZERO:不自动将值设为0而是设置为null
STRICT_TRANS_TABLES:开启存储引擎启用严格模式,非法数据值被拒绝
NO_ZERO_IN_DATE:在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入’0000-00-00’。在非严格模式,可以接受该日期,但会生成警告
NO_ZERO_DATE:在严格模式,不要将 '0000-00-00’做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告
ERROR_FOR_DIVISION_BY_ZERO:当分母为0时提示error
NO_ENGINE_SUBSTITUTION:不用其他引擎代替,当指定引擎没有找到时,提示错误,不用其他引擎代替
PIPES_AS_CONCAT:||当成管道符使用,而不是或
ANSI_QUOTES:字符集设置为ANSI

default_authentication_plugin=mysql_native_password # 设置身份验证插件
skip-name-resolve # 禁用dns解析
#skip-grant-tables # 不需要密码认证,直接使用 mysql -uroot -p 然后回车进入数据库

10、起服务
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
在这里插入图片描述
11、进入数据库修改密码
注:安装成功会生成一个临时随机密码,在/var/log/mysqld.log文件里可以查找到
mysql>alter user root@‘localhost’ identified by ‘Sccin1qazCDE#’;
mysql>flush privileges;

12、主从配置
(1)主从复制用户必须存在候选的 master 机器上,在mysql终端下,所有机子上均做以下操作
CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘Sccin1qazCDE#’; #创建一个repl的用户,并授予权限能够登录数据库
GRANT REPLICATION SLAVE ON . TO ‘repl’@’%’; #给repl用户授权使其能够复制
(2)在master的mysql终端下,加锁取 master 的 binlog 的 positon
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
在这里插入图片描述
(3)备份出master的数据库,拷贝到所有slave机器上去
[root@manager work]#mysqldump -uroot -pSccin1qazCDE# -A -B > db.sql
[root@manager work]# scp db.sql root@192.168.1.12:~

(4)释放master上的读锁,在master的mysql终端执行
UNLOCK TABLES;

(5)在slave节点上的mysql终端还原从主拷贝过来 db.sql
source db.sql;

(6)在slave节点上,配置 slave 节点从 master 进行同步
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST=‘192.168.1.11’,MASTER_USER=‘repl’,
MASTER_PASSWORD=‘Sccin1qazCDE#’,
MASTER_LOG_FILE=‘binlog.000005’,MASTER_LOG_POS= 659;
START SLAVE;

(7)检查主从状态
SHOW SLAVE STATUS\G
在这里插入图片描述
在这里插入图片描述
重要参数:
Slave_IO_Running: Yes #负责从主库读取 bin-log 日志,并写入丛库的中继日志中
Slave_SQL_Running: Yes #负责读取并执行中继日志的 bin-log,转换为 sql 语句并应用数据库
Replicate_Ignore_DB: mysql #不同步的库
Seconds_Behind_Master: 0 和 master #同步延迟的秒数,主从延迟太大就需要处理了。为 0 表示已经同步!

标签:8.0,22,MySql8,community,64,mysql,rpm,主从
来源: https://blog.csdn.net/qq_42890862/article/details/118603215

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有