CentOS7安装mysql-5.7.44单机和主从复制

官网下载地址:

https://downloads.mysql.com/archives/community/

1、单机安装

安装依赖

yum -y install libaio

解压安装

tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysqlcd /usr/local/mysql

创建一个mysql组和用户

groupadd mysql
useradd -r -g mysql mysql

更改mysql 目录所属的用户组、用户以及文件权限

#切换到刚刚下载的mysql文件夹对应的目录下
cd /usr/local
#更改文件的用户组和用户
chown -R mysql:mysql mysql
#给mysql目录下的所有文件加执行权限
chmod -R 775 mysql

把mysql/bin目录加入到系统环境变量中

#把这个写到配置文件里,路径不同,记得要修改路径
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#生效配置文件
source /etc/profile
# 检查环境变量是否配置成功
mysql --version

如果出现版本号,则表示MySQL环境变量配置成功了。

生成临时密码,记住这个密码,后面要使用。

#切换到mysql目录下
cd /usr/local/mysql# 生成临时数据库密码
mysqld --user=mysql --initialize --datadir=/usr/local/mysql/data

注意:这里的临时密码需要记住 w,bnuSs<t1tV

复制启动文件到/etc/init.d目录

# 在mysql目录下复制启动文件到/etc/init.d/目录
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

配置my.cnf

vi /etc/my.cnf

[mysqld]
# 指定Mysql数据库的开放端口。
port = 3306
# 设置Mysql数据库的安装目录(绝对路径)。
basedir = /usr/local/mysql
# 设置Mysql数据库的数据存放的绝对路径(存放目录)。必须是data,或者是\\xxx-data(my.ini需要,my.cnf不需要)。
datadir = /usr/local/mysql/data
# 设置MySQL数据库的最大连接数量。
max_connections = 100
# 设置MySQL数据库的连接超时时间。默认设置是一个数据库连接超过8小时没有使用,达到了server端的timeout,服务器将断开这条连接。
wait_timeout = 28800
# 当没有数据库请求时,28800秒(即8小时)将自动断开连接。要同时设置interactive_timeout和wait_timeout才会生效。
interactive_timeout = 28800socket=/var/lib/mysql/mysql.sock
symbolic-links=0[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid[client]
socket=/var/lib/mysql/mysql.sock!includedir /etc/my.cnf.d

保存后,给配置文件加上可执行权限 

chmod -R 775 /etc/my.cnf
#日志目录
mkdir /var/log/mariadb/
touch /var/log/mariadb/mariadb.log
chown -R  mysql:mysql /var/log/mariadb/mkdir /var/lib/mysql/
chown -R  mysql:mysql  /var/lib/mysql/

 启动服务,启动之前我们先查询有没有启动过,没有启动查询结果为空

ps -ef|grep -v grep |grep mysql
ps -ef|grep -v grep |grep mysqld

 启动

#启动mysql服务
/etc/init.d/mysqld start#启动成功标志
Starting MySQL. SUCCESS!

登录并修改root密码

# mysql -u用户名 -p密码
mysql -uroot -p"w,bnuSs<t1tV"

登录mysql ,密码就是初始化时生成的临时密码;

登录进来之后,我们来修改密码

#修改密码为root
set password for root@localhost = password('root');

quit 退出后,重新登录一下 

mysql -uroot -proot

开放远程登陆

#登录进来之后,切换到mysql库
use mysql;
#修改用户权限
update user set user.Host='%' where user.User='root';
#刷新权限
flush privileges;

开启防火墙

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

2、主从复制

按照上面的方式,安装两台单机版本。

二进制日志文件

修改数据节点的唯一标识
在 [mysqld] 下新增2行,其中server-id用来区分节点的编号,唯一。log-bin设置二进制文件的名称。

vi /etc/my.cnf

[mysqld]
server-id=1
log-bin=mysql-bin

另外一台

[mysqld]
server-id=2
log-bin=mysql-bin

重启数据库 让二进制文件生效即可

/etc/init.d/mysqld restart

重启后生成二进制文件

ll /usr/local/mysql/data/mysql-bin*-rw-r----- 1 mysql mysql 154 3月  21 16:37 /usr/local/mysql/data/mysql-bin.000001
-rw-r----- 1 mysql mysql  19 3月  21 16:37 /usr/local/mysql/data/mysql-bin.index

实现主从挂载

主库状态
主库IP这里使用192.168.111.201
检查主库的状态,主要查询 要同步的 文件名 File 和 位置 Position 

#在主库执行
# 在主库201查询状态
# 登录
mysql -uroot -prootSHOW MASTER STATUS;

如下 Position 查询结果为 154 后面需要使用。

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

实现主从挂载
这一步在 从库 192.168.111.202 里面执行

# 在从库中执行
# 从库链接主库
# IP/端口/用户名/密码/二进制文件名/pos位置# 登录
mysql -uroot -proot#同步主库
CHANGE MASTER TO 
MASTER_HOST="192.168.111.201",#主库ip
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=154;

启动主从
启动主从服务,在从库执行下面命令

# 登录
mysql -uroot -proot#启动
START SLAVE;

这一步在 从库里面执行,出现如下2个yes就成功了。

# 登录
mysql -uroot -proot#检查主从状态
#SHOW SLAVE STATUS;#检查主从状态,命令行客户端,垂直格式显示结果
SHOW SLAVE STATUS\G
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************Slave_IO_Running: YesSlave_SQL_Running: Yes

测试主从

主从要达到的效果,修改主库的数据,从库的数据跟着改变。千万不要手动去改从库的数据,去看主库变化没有,千万不要这样操作,这样主从就废了。

主从不一致

主从报错 Slave_SQL_Running: No

重新做主从,完全同步

该方法适用于主从库数据相差较大,或者要求数据完全统一的情况
重新做主从,然后使用change master指定同步位置,这种耗时长

主库执行

mysql -uroot -proot#1.先进入主库,进行锁表,防止数据写入 
mysql> flush tables with read lock; 
#注意:该处是锁定为只读状态
#2.进行数据备份,test表示要备份的数据库名称
mysqldump -uroot -proot --lock-all-tables --flush-logs test > /usr/local/mysql/data/back.sql# 修改导出的sql语句
vi /usr/local/mysql/data/back.sql
# 创建数据库,test改成自己的数据库名称
CREATE DATABASE IF NOT EXISTS  `test` CHARSET utf8;
# 在执行SQL语句之前,使用USE 数据库名;test改成自己的数据库名称
use `test`;# 复制到从库
scp /usr/local/mysql/data/back.sql root@192.168.111.202:/usr/local/mysql/data/
mysql> unlock tables;#查看主机状态:File和Position对应的值
show master status;

从库执行

# 从库操作
mysql -uroot -proot# 1.停止从库的状态
mysql> stop slave;
# 2.清除从节点配置信息(仅清理master.info 和 relay-log.info 文件)
mysql> reset slave;
# 3.从库执行mysql命令,导入数据备份
mysql> source /usr/local/mysql/data/back.sql# 4.设置从库同步,master_log_pos改成主库Position最新的值CHANGE MASTER TO 
MASTER_HOST="192.168.111.201",#主库ip
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=154;# 5.启动同步
start slave ;# 查看
SHOW SLAVE STATUS\G

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发常用判断符号

!就是将右侧值先转化为bool值后在进行取反&#xff0c;因此对于空对象或者空数组的取反取值为false&#xff0c;因为空对象或空数组转化为bool值为true。 !!则为在一个!将右侧值转化为bool值取反后再取反。 |该运算符取值逻辑为判断时将值转化为bool值判断左侧值为true or fa…

文件上传一-WEB攻防-PHP应用文件上传函数缺陷条件竞争二次渲染黑白名单JS绕过9

演示案例&#xff1a; PHP-原生态-文件上传-前后端验证PHP-原生态-文件上传-类型文件头验证PHP-原生态-文件上传-后缀黑白名单验证PHP-原生态-文件上传-解析配置&二次渲染PHP-原生态-文件上传-逻辑缺陷&函数缺陷 #学习前必读&#xff1a; 1、课前一定要明白&#xff1a…

蓝桥杯基础练习详细解析一(代码实现、解题思路、Python)

试题 基础练习 数列排序 资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给定一个长度为n的数列&#xff0c;将这个数列按从小到大的顺序排列。1<n<200 输入格式 第…

MySQL事务(超详细!!!)

目录 一、MySQL事务的概念 二、事务的ACID特点 1、原子性&#xff08;Atomicity&#xff09; 2、持久性 3、隔离性&#xff08;Isolation&#xff09; 3.1 事务的并发问题 ①、脏读(读取未提交数据) ②读已提交、不可重复读(前后多次读取&#xff0c;数据内容不一致) …

【Redis主从架构。主从工作原理psync、bgsave、部分数据复制、主从复制风暴解决方案】【Redis哨兵高可用架构。sentinel】

Redis主从架构 Redis主从工作原理数据部分复制 Redis哨兵高可用架构client连接哨兵规则主节点挂了&#xff0c;集群从新选择主节点&#xff0c;并且同步给sentinel 转自图灵课堂 redis主从架构搭建&#xff0c;配置从节点步骤&#xff1a; 1、复制一份redis.conf文件2、将相关…

美易官方:除了散户,对冲基金也在重返加密市场

高盛&#xff1a;除了散户&#xff0c;对冲基金也在重返加密市场 随着加密货币市场的逐渐成熟和技术的不断进步&#xff0c;越来越多的机构投资者开始重新审视加密货币市场。除了散户投资者外&#xff0c;对冲基金也在重返加密市场&#xff0c;成为市场的重要参与者之一。高盛作…

苹果手机强制重启方法大揭秘!不同机型多种方法一网打尽

随着苹果手机的普及&#xff0c;越来越多的人选择使用这款优秀的智能手机。然而&#xff0c;就像任何其他设备一样&#xff0c;苹果手机也可能会出现各种问题&#xff0c;例如系统崩溃、应用程序冻结或其他错误。在这种情况下&#xff0c;强制重启手机是解决问题的一个有效方法…

Pygame基础3-动画

3.动画 原理 动画是连续播放的图片。 使用精灵显示动画只需要在update()方法中改变精灵的图片。 需要注意的是播放速度&#xff0c;可以 通过pygame.time.get_ticks()来控制时间&#xff0c;但是这样比较复杂。最直接的方式是根据帧数来控制播放。每过n帧就切换一次图片。 …

linux系统--------------mysql数据库管理

目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息 1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构&#xff08;字段&#xff09; 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL&#xff1a;数据定义语言&am…

linux内核原理-共享内存,信号

1.共享内存 (1). 定义 在Linux中&#xff0c;进程间通信&#xff08;IPC&#xff09;有多种方式&#xff0c;其中共享内存&#xff08;Shared Memory&#xff09;是一种非常高效的方式。它允许两个或多个进程共享同一块物理内存区域&#xff0c;从而可以快速地传递大量数据。 …

CentOS 8 中安装与配置 MySQL

本文将详细介绍如何在 CentOS 8 系统上安装 MySQL&#xff0c;并对其进行基础安全配置&#xff0c;包括设置 root 密码、移除匿名用户、禁止 root 远程登录等。 步骤一&#xff1a;安装 MySQL 服务器 利用 CentOS 8 自带的 dnf 包管理器安装 MySQL 服务器&#xff1a; sudo …

【二十一】【算法分析与设计】位运算(2)

137. 只出现一次的数字 II 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1&#xff1a; 输入&…

Web安全基础入门+信息收集篇

教程介绍 学习信息收集&#xff0c;针对域名信息,解析信息,网站信息,服务器信息等&#xff1b;学习端口扫描&#xff0c;针对端口进行服务探针,理解服务及端口对应关系&#xff1b;学习WEB扫描&#xff0c;主要针对敏感文件,安全漏洞,子域名信息等&#xff1b;学习信息收集方法…

SpringMVC | SpringMVC中的 “文件上传和下载”

目录: 一、文件上传1.1 文件上传“概述”1.2 文件上传“具体配置” :“前端”中配置“文件上传” ( type“file” 满足3个条件 )“后端”中配置“文件上传” ( 配置id为“CommonsMultipartResolver”的bean 配置“文件上传”的“约束条件” 通过“MultipartFile接口”参数接…

自然语言处理: 第十八章微调技术之QLoRA

文章地址: QLoRA: Efficient Finetuning of Quantized LLMs (arxiv.org) 项目地址: artidoro/qlora: QLoRA: Efficient Finetuning of Quantized LLMs (github.com) 前言 QLoRA是来自华盛顿大学的Tim Dettmers大神提出的模型量化算法&#xff0c;应用于LLM训练&#xff0c;降…

007、IronPython与.NET Framework

今天就随便找个话题——聊聊IronPython与.NET Framework吧&#xff0c;算了&#xff0c;这东西比较专业&#xff0c;为避免说错话&#xff0c;还是从网上搜点专业术语贴出来吧&#xff0c;希望对学习Dynamo的小伙伴能有些帮助。 IronPython IronPython只是Python语言的一种方…

【Linux基础】dash和bash简介

Dash&#xff08;Debian Almquist Shell&#xff09;和 Bash&#xff08;Bourne Again Shell&#xff09;是 Unix/Linux 系统中的命令行 shell&#xff0c;用于执行命令、管理文件系统、编写脚本等任务的工具。 一、Dash和Bash的区别&#xff1a; Bash&#xff08;Bourne Agai…

RabbitMQ 的高阶应用及可靠性保证

目录 一、RabbitMQ 高阶应用 1.1 消息何去何从 1.2 过期时间 1.3 死信队列 1.4 延迟队列 1.5 优先级队列 1.6 消费质量保证&#xff08;QOS&#xff09; 二、持久化 三、生产者确认 四、消息可靠性和重复消费 4.1 消息可靠性 4.2 重复消费问题 上篇文章介绍了 Rabb…

前端打印(不使用插件,没有副作用)

今天要写一个打印,以前写过是直接调用window.print() ,因为之间是点击预览,跳转页面,打印,所以也没发现有什么副作用,今天,打印是在当前页打印局部,网上部分方法说,打印前把body赋值成局部元素,打印后复原,我发现这样会让打印之后,页面点击事件失效 但是我找到一个无副作用的,…

流畅的 Python 第二版(GPT 重译)(三)

第五章&#xff1a;数据类构建器 数据类就像孩子一样。它们作为一个起点是可以的&#xff0c;但要作为一个成熟的对象参与&#xff0c;它们需要承担一些责任。 马丁福勒和肯特贝克 Python 提供了几种构建简单类的方法&#xff0c;这些类只是一组字段&#xff0c;几乎没有额外功…