当前位置: 首页 > news >正文

CentOS7源码安装MySQL详细教程

在这里插入图片描述
😊 @ 作者: Eric
💖 @ 主页: https://blog.csdn.net/weixin_47316183?type=blog
🎉 @ 主题:CentOS7源码安装MySQL详细教程
⏱️ @ 创作时间: 2023年08月014日

在这里插入图片描述


文章目录

  • 1、安装的四种方式
  • 2、源码安装MySQL详细步骤
    • 2.1、查看是否安装过MySQL
    • 2.2、卸载之前的MySQL(可选)
    • 2.3、安装MySQL
      • 1)下载安装包
      • 2)检查MySQL依赖
      • 4)具体安装过程
      • 4)服务的初始化
      • 5)启动MySQL、查看状态
      • 7)MySQL登录
      • 8)修改密码
  • 3、配置MySQL
    • 3.1、设置MySQL自启动
    • 3.2、设置允许远程连接
  • 总结


1、安装的四种方式

安装方式特点
rmp安装简单、灵活性差、无法灵活选择版本、升级
rpm repository安装包极小,版本安装简单灵活,升级方便,需要联网安装
通用二进制包安装比较复杂,灵活性高,平台通用性好
源码包安装最复杂,时间长,参数设置灵活,性能好

那么我们这里选择 源码包 方式进行安装,因为性能好同时设置参数灵活

2、源码安装MySQL详细步骤

2.1、查看是否安装过MySQL

1、如果你是用rpm安装, 检查一下RPM PACKAGE:

rpm -qa | grep -i mysql  

2、检查mysql service:

systemctl status mysqld.service

3、如果存在mysql-libs的旧版本包,显示如下:
在这里插入图片描述

如果不存在mysql-lib的版本,显示如下:
在这里插入图片描述

2.2、卸载之前的MySQL(可选)

1、关闭 mysql 服务

systemctl stop mysqld.service

2、查看当前 mysql 安装状况

rpm -qa | grep -i mysql
# 或
yum list installed | grep mysql

3、卸载上述命令查询出的已安装程序

yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx

务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留

4、删除 mysql 相关文件

# 查找相关文件
find / -name mysql# 删除上述命令查找出的相关文件
rm -rf xxx

5、删除 my.cnf

rm -rf /etc/my.cnf

2.3、安装MySQL

1)下载安装包

  1. 下载地址官网:https://www.mysql.com
  2. 打开官网,找到 DOWNLOADS ,然后点击 MySQL Community Server
    在这里插入图片描述

3.选择 Red Hat Enterprise Linux
在这里插入图片描述
4.下载的tar包,用压缩工具打开
在这里插入图片描述

  1. 解压后rpm安装包 (红框为抽取出来的安装包)

  2. 解压后rpm安装包 (红框为抽取出来的安装包)

在这里插入图片描述
这里为了方便我直接把抽取好的npm包放在了网盘:
链接:https://pan.baidu.com/s/1RNppZcP_eaG0zDGDZMrIXQ?pwd=Eric
提取码:Eric

2)检查MySQL依赖

1、由于MySQL安装过程中,会通过MySQL用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执行 :

cd /opt/chmod -R 777 /tmp

2、检查 libaio 依赖

rpm -qa|grep libaio

如果存在libaio包如下:
在这里插入图片描述
3、检查 net-tools 依赖

rpm -qa|grep net-tools

如果存在 net-tools 包如下:
在这里插入图片描述
如果不存在 net-tools 则需要安装

yum install -y net-tools

4)具体安装过程

1、将安装程序拷贝到/opt目录下
在这里插入图片描述

2、在mysql的安装文件目录下执行:(必须按照顺序执行)

# 1、先切换到 opt目录
cd /opt# 2、开始按照顺序执行安装命令(必须按照这个顺序执行)
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpmrpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpmrpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpmrpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm

可能报错1:

在这里插入图片描述
一个命令:yum remove mysql-libs 解决,

可能报错2:

在这里插入图片描述
一个命令:yum install -y perl-Module-Install.noarch 解决,

安装成功后查看MySQL版本
执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息

mysql --version
# 或
mysqladmin --version

在这里插入图片描述

执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。

rpm -qa | grep -i mysql

在这里插入图片描述

4)服务的初始化

为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:

mysqld --initialize --user=mysql

说明: --initialize 选项默认以“安全”模式来初始化,则会为root用户生成一个密码并将 该密码标记为过期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。

查看密码:

cat /var/log/mysqld.log

root@localhost: 后面就是初始化的密码

在这里插入图片描述

5)启动MySQL、查看状态

#加不加.service后缀都可以
启动:systemctl start mysqld.service关闭:systemctl stop mysqld.service重启:systemctl restart mysqld.service查看状态:systemctl status mysqld.service

在这里插入图片描述

也可以查看MySQL的进程
在这里插入图片描述

7)MySQL登录

通过 mysql -hlocalhost -P3306 -uroot -p 进行登录,在Enter password:录入初始化密码

# 1、先查看密码
cat /var/log/mysqld.log# 2、登录MySQL
mysql -hlocalhost -P3306 -uroot -p 

在这里插入图片描述
此时我们登录试试
在这里插入图片描述
登录成功~

8)修改密码

  • 因为初始化密码默认是过期的,所以查看数据库会报错
  • 修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Hf$ypXW*xJ^rn&0z';

注意:5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错。
在这里插入图片描述
改为更复杂的密码规则之后,设置成功,可以正常使用数据库了

在这里插入图片描述




3、配置MySQL

3.1、设置MySQL自启动

先查看MySQL是否自启动

systemctl list-unit-files | grep mysqld.service

默认是enabled。也就代表是 自启动

在这里插入图片描述
如不是enabled可以运行如下命令设置自启动

systemctl enable mysqld.service

如果不希望自启动,运行如下命令设置

systemctl disable mysqld.service

3.2、设置允许远程连接

1、在Linux系统MySQL下测试:

use mysql;select Host,User from user;

在这里插入图片描述

可以看到root用户的当前主机配置信息为localhost。

2、修改Host为通配符%

  • Host列指定了允许用户登录所使用的IP,
  • 比如 user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=rootHost=localhost,表示只能通过本机客户端去访问。
  • 而 %是个 通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果 Host=%,表示所有IP都有连接权限。
  • 注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。

update user set host = '%' where user ='root';

Host设置了“%”后便可以允许远程访问。
在这里插入图片描述
Host修改完成后记得执行flush privileges使配置立即生效:

flush privileges;

如果是 MySQL5.7 版本,接下来就可以使用SQLyog或者Navicat成功连接至MySQL了。

如果是 MySQL8.x 版本,连接时还会出现如下问题:
在这里插入图片描述

配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了。

此时我们需要修改密码加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Hf$ypXW*xJ^rn&0z';

效果如下
在这里插入图片描述
此时我们可以再次连接,会发现还是连接失败,这个错误就比较简单了,我们只需要关闭防火墙或者开放MySQL端口即可(在这里我把这两种方式都列出来,大家任意选择就好)

方式一:关闭防火墙

# 开启防火墙
systemctl start firewalld.service# 查看防火墙状态
systemctl status firewalld.service# 关闭防火墙
systemctl stop firewalld.service#设置开机启用防火墙
systemctl enable firewalld.service#设置开机禁用防火墙
systemctl disable firewalld.service

方式二:开放端口

# 查看开放的端口号
firewall-cmd --list-all# 设置开放的端口号
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent# 开放端口号后需要重启防火墙
firewall-cmd --reload

我这里选择开放端口(如果是云服务器需要去到控制台开放安全组端口)

在这里插入图片描述

此时我们再次连接,发现终于成功啦~

在这里插入图片描述
在这里插入图片描述


总结

怎么样,是不是特别的方便和简单~

相关文章:

CentOS7源码安装MySQL详细教程

😊 作者: Eric 💖 主页: https://blog.csdn.net/weixin_47316183?typeblog 🎉 主题:CentOS7源码安装MySQL详细教程 ⏱️ 创作时间: 2023年08月014日 文章目录 1、安装的四种方式2、源码安装…...

SpringBoot + Vue 微人事(十二)

职位批量删除实现 编写后端接口 PositionController DeleteMapping("/")public RespBean deletePositionByIds(Integer[] ids){if(positionsService.deletePositionsByIds(ids)ids.length){return RespBean.ok("删除成功");}return RespBean.err("删…...

上半年巴比食品增收不增利,下半年失速的团餐业务能否“复苏”?

随着生活节奏逐渐加快,“宅经济”和“懒人经济”快速融合,人们对进餐便利性的要求逐渐提高,更适用于居家消费的食品应运而生,这其中速冻面点既便于烹饪,又方便快捷,因此其率先出圈获得了消费者青睐&#xf…...

Java基础篇--内部类

在Java中,允许在一个类的内部定义类,这样的类称作内部类,内部类所在的类称作外部类。在实际开发中,根据内部类的位置、修饰符和定义方式的不同,内部类可分为4种,分别是成员内部类、局部内部类、静态内部类、…...

完全备份、增量备份、差异备份、binlog日志

Top NSD DBA DAY06 案例1:完全备份与恢复案例2:增量备份与恢复案例3:差异备份与恢复案例4:binlog日志 1 案例1:完全备份与恢复 1.1 问题 练习物理备份与恢复练习mysqldump备份与恢复 1.2 方案 在数据库服务器192…...

Flutter实现Service + UI 全面跨平台

作者:Karl_wei 前言: Flutter作为跨平台的UI框架,其可行性已经被市场所认可。UI跨端后,我们自然会希望一些运行在终端的小服务也能跨端,特别是当这个小服务还涉及到一些 UI 的展示。 我们希望Flutter能承担这个角色&…...

微软商店的ubuntu 连不上网Temporary failure in name resolution

背景:win10 下载docker时需要wsl2,下了个微软商店的Ubuntu 。写这篇文章的原因是当时查了资料ubuntu的问题和微软下载的Ubuntu还是有一些区别,问题不好解决,故写此文。 问题:用命令ifconfig eth0 down后再执行ifconfi…...

“深入剖析JVM内部工作原理:解密Java虚拟机“

标题:深入剖析JVM内部工作原理:解密Java虚拟机 摘要: 本文将深入剖析Java虚拟机(JVM)的内部工作原理,包括类加载、运行时数据区、垃圾回收、即时编译等关键概念和机制。通过对JVM的解密,我们将…...

数据结构与算法基础

一、基本概念和术语 (一)数据元素、数据结构、抽象数据类型等概念 (二)算法设计的基本要求 (三)语句的频度和估算时间复杂度 二、线性表 (一)线性表的定义和基本操作 &#xff08…...

人工智能任务1-【NLP系列】句子嵌入的应用与多模型实现方式

大家好,我是微学AI,今天给大家介绍一下人工智能任务1-【NLP系列】句子嵌入的应用与多模型实现方式。句子嵌入是将句子映射到一个固定维度的向量表示形式,它在自然语言处理(NLP)中有着广泛的应用。通过将句子转化为向量…...

【Java并发编程面试题(60道)】

toc Java并发编程面试题(60道) 基础 1.并行跟并发有什么区别? 从操作系统的角度来看,线程是CPU分配的最小单位。 并行就是同一时刻,两个线程都在执行。这就要求有两个CPU去分别执行两个线程。并发就是同一时刻,只有一个执行&…...

Python:逢七拍腿游戏

场景模拟: 通过在 for 循环中使用 continue 语句实现计算拍腿次数,即计算从1到100(不包括100),一共有多少个尾数为7或7的倍数这样的游戏,代码如下: total 99 # 记…...

esp32C3 micropython oled 恐龙快跑游戏

目录 简介 效果展示 源代码 main.py ssd1306.py 实现思路 血量值 分数 恐龙 障碍物 得分与血量值的计算 简介 使用合宙esp32c3模块,基于micropython平台开发的一款oled小游戏,恐龙快跑,所有代码已经给出,将两个py文件…...

53.Linux day03 文件查看命令,vi/vim常用命令

今天进行了新的学习。 目录 1.cat a.查看单个文件的内容: b.查看多个文件的内容: c.将多个文件的内容连接并输出到一个新文件: d.显示带有行号的文件内容: 2.more 3.less 4.head 5.tail 6.命令模式 7.插入模式 8.图…...

YOLOv8改进后效果

数据集 自建铁路障碍数据集-包含路障,人等少数标签。其中百分之八十作为训练集,百分之二十作为测试集 第一次部署 版本:YOLOv5 训练50epoch后精度可达0.94 mAP可达0.95.此时未包含任何改进操作 第二次部署 版本:YOLOv8改进版本 首…...

小程序的数据绑定和事件绑定

小程序的数据绑定 1.需要渲染的数据放在index.js中的data里 Page({data: {info:HELLO WORLD,imgSrc:/images/1.jpg,randomNum:Math.random()*10,randomNum1:Math.random().toFixed(2)}, }) 2.在WXML中通过{{}}获取数据 <view>{{info}}</view><image src"{{…...

第四章MyBatis核心配置文件

environments与environment标签 environments主要用来配置环境&#xff0c;属性default表示默认环境&#xff0c;值为environment的idenvironment为具体环境&#xff0c;属性id表示环境唯一标识environments可以有多个environment 加载默认环境 sqlSessionFactory sqlSessi…...

⛳ Docker - Centos 安装配置

目录 ⛳ Docker - Centos 安装配置&#x1f3ed; Docker 安装&#xff1a;&#x1f4e2; 一、安装依赖包&#x1f4ac; 二、添加 Docker 下载源地址&#x1f43e; 三、更新yum缓存&#x1f463; 四、安装Docker&#x1f4bb; 五、启动Docker&#x1f381; 六、查看Docker状态和…...

Python web实战之Django 的跨站点请求伪造(CSRF)保护详解

关键词&#xff1a;Python、Web、Django、跨站请求伪造、CSRF 大家好&#xff0c;今天我将分享web关于安全的话题&#xff1a;Django 的跨站点请求伪造&#xff08;CSRF&#xff09;保护&#xff0c;介绍 CSRF 的概念、原理和保护方法. 1. CSRF 是什么&#xff1f; CSRF&#…...

ARM(汇编指令)

.global _start _start:/*mov r0,#0x5mov r1,#0x6 bl LoopLoop:cmp r0,r1beq stopsubhi r0,r0,r1subcc r1,r1,r0mov pc,lr*/ mov r0,#0x1mov r1,#0x0mov r2,#0x64bl Loop Loop:cmp r0,r2bhi stopadd r1,r1,r0add r0,r0,#0x01mov pc,lr stop:B stop.end...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...