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

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

在这里插入图片描述

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

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


总结

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

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

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

相关文章

路径规划 | 详解维诺图Voronoi算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 维诺图规划原理2 ROS C实现(栅格图搜索)3 Python实现(路图搜索)4 Matlab实现(路图搜索) 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等)&#…

(css)点击前隐藏icon图表 点击后显示

(css)点击前隐藏icon图表 点击后显示 效果 html <liv-for"(item,index) in sessionList":key"index"class"liClass":class"{ active: change2 index }"tabindex"2">...<el-tooltip class"item" effec…

有血有肉的PPT

1、PPT是Powerpoint缩写 2、引申的含义是Powerpoint Power(力量/能量&#xff09; Point(观点/要点) 3、用PPT做的文档是讲演稿&#xff0c;讲演的内容要有力度&#xff0c;之所以要去演讲是为了能够影响受众 4、其次演讲稿上的内容要列出要点、表明观点&#xff0c;所以一般P…

ArcGIS Pro实践技术应用暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用

GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来&#xff0c;达到对地理和属性信息的综合管理。GIS的…

Python自动化测试框架:Pytest和Unittest的区别

pytest和unittest是Python中常用的两种测试框架&#xff0c;它们都可以用来编写和执行测试用例&#xff0c;但两者在很多方面都有所不同。本文将从不同的角度来论述这些区别&#xff0c;以帮助大家更好地理解pytest和unittest。 1. 原理 pytest是基于Python的assert语句和Pytho…

解决WSL2的docker删除镜像后,磁盘空间不释放问题

1、问题原因 由于WSL2本质上是虚拟机&#xff0c;所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容&#xff0c;但是一般不会自动缩容。一旦有很多文件把它“撑大”&#xff0c;即使把这些文件删除它也不会自动“缩…

Linux零基础快速入门到精通

一、操作系统概述 二、初始Linux Linux的诞生 Linux内核 Linux发行版 小结 三、虚拟机 认识虚拟机 虚拟化软件及安装 VMware Workstation 17 Pro安装教程https://blog.csdn.net/weixin_62332711/article/details/128695978 远程连接Linux系统 小结 扩展-虚拟机快照 …

STM32 LL库开发

一、STM32开发方式 标准库开发&#xff1a;Standard Peripheral Libraries&#xff0c;STDHAL库开发&#xff1a;Hardware Abstraction Layer&#xff0c;硬件抽象层LL库开发&#xff1a;Low-layer&#xff0c;底层库 二、HAL库与LL库开发对比 ST在推行HAL库的时候&#xff0c;…

造个轮子-任务调度执行小框架-任务清单执行器实现

文章目录 前言执行器流程提交流程线程池实现执行器实现接口状态标志执行周期实现清单代理创建清单项执行总结前言 okey,上一篇文章我们提到了,如何实现它的一个清单的一个代理。这里的话我们来捋一捋我们的这个执行流程是啥: 所以的话,我们的我们这里今天要做的是这个执行…

mysql_docker主从复制_实战_binlog混合模式_天座著

步骤1&#xff1a;拉取镜像 docker pull mariadb:latest 步骤2.1&#xff1a;创建两个文件夹用于放置挂载mysql的my.cnf /tianzuomysqlconf/master /tianzuomysqlconf/slave mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave 步骤2.2&#xff1a;创…

【简单认识zookeeper+kafka分布式消息队列集群的部署】

文章目录 一、zookeeper1、定义2、工作机制3、Zookeeper 特点4、Zookeeper 数据结构5、Zookeeper 应用场景6、Zookeeper 选举机制&#xff08;1&#xff09;第一次启动选举机制&#xff08;2&#xff09;非第一次启动选举机制 7、部署zookeeper群集 二、消息队列概述1、为什么需…

Hands on RL 之 Proximal Policy Optimization (PPO)

Hands on RL 之 Proximal Policy Optimization (PPO) 文章目录 Hands on RL 之 Proximal Policy Optimization (PPO)1. 回顾Policy Gradient和TRPO2. PPO (Clip)3. PPO(Penalty)4. PPO中Advantage Function的计算5.实现 PPO-ClipReference 1. 回顾Policy Gradient和TRPO ​ 首…

ubuntu python虚拟环境venv搭配systemd服务实战(禁用缓存下载--no-cache-dir)

文章目录 参考文章目录结构步骤安装venv查看python版本创建虚拟环境激活虚拟环境运行我们程序看缺少哪些依赖库&#xff0c;依次安装它们&#xff08;禁用缓存下载--no-cache-dir&#xff09;接下来我们配置python程序启动脚本&#xff0c;脚本中启动python程序前需先激活虚拟环…

【C++】开源:gflags命令行参数解析库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍gflags命令行参数解析库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&…

【数字图像处理】数字图像处理中的直方图相关操作

文章目录 前言一、直方图为什么可以进行图像处理&#xff1f;二、直方图处理怎么实现&#xff1f;直方图均衡化直方图匹配-规定化局部直方图处理直方图统计量增强图像 三、OpenCv提供的直方图基础操作直方图均衡化OpenCv中直方图的表示从数据创建直方图&#xff1a;cv::calcHis…

【云原生】Docker 详解(一):从虚拟机到容器

Docker 详解&#xff08;一&#xff09;&#xff1a;从虚拟机到容器 1.虚拟化 要解释清楚 Docker&#xff0c;首先要解释清楚 容器&#xff08;Container&#xff09;的概念。要解释容器的话&#xff0c;就需要从操作系统说起。操作系统太底层&#xff0c;细说的话一两本书都说…

Linux学习之awk函数

awk里边的函数分为内置函数和自定义函数。 内置函数有下边的几种&#xff1a; 算术函数&#xff08;arithmetic&#xff09; 字符串函数&#xff08;string&#xff09; 输入/输出函数和通用函数&#xff08;input/output, and general&#xff09; 自定义函数格式如下&#xf…

Oracle 使用 CONNECT_BY_ROOT 解锁层次结构洞察:在 SQL 中导航数据关系

CONNECT_BY_ROOT 是一个在 Oracle 数据库中使用的特殊函数&#xff0c;它通常用于在层次查询中获取根节点的值。在使用 CONNECT BY 子句进行层次查询时&#xff0c;通过 CONNECT_BY_ROOT 函数&#xff0c;你可以在每一行中获取根节点的值&#xff0c;而不仅仅是当前行的值。 假…

算法竞赛备赛之搜索与图论训练提升,暑期集训营培训

目录 1.DFS和BFS 1.1.DFS深度优先搜索 1.2.BFS广度优先搜索 2.树与图的遍历&#xff1a;拓扑排序 3.最短路 3.1.迪杰斯特拉算法 3.2.贝尔曼算法 3.3.SPFA算法 3.4.多源汇最短路Floy算法 4.最小生成树 4.1.普利姆算法 4.2.克鲁斯卡尔算法 5.二分图&#xff1a;染色法…

浅析kubernetes部署:javashop部署概览

javashop部署概览 节点规划 首先我们对节点进行规划&#xff0c;方便起见&#xff0c;我们进行如下简单的规划&#xff1a; 这里请根据您的实际情况进行合理的资源安排&#xff0c;或和我们售后工程师讨论形成方案。 域名规划 我们以test.com为主域名规划我们的系统域名如下&…