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.mzph.cn/news/43200.shtml

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

相关文章

深度解析:DDoS攻击与先进防御策略

目录 DDoS 介绍 DDoS 攻击理论 DDoS 介绍 DDoS(分布式拒绝服务)攻击是一种恶意网络活动,旨在通过同时向目标系统发送大量请求或流量,使其无法正常运行或提供服务。攻击者通常利用网络上的多个计算机和设备,形成一个&…

极智嘉x吉利汽车 x京东物流,引领汽车行业智慧物流新变革!

近日,中国领先的汽车制造商吉利汽车携手中国领先的技术驱动的供应链解决方案及物流服务商京东物流、全球仓储机器人引领者极智嘉(Geek),在西安吉利汽车制造基地RDC仓库率先落地SkyPick上存下拣解决方案,实现了全物流链精益化、智能化、一体化…

Spring-4-掌握Spring事务传播机制

今日目标 能够掌握Spring事务配置 Spring事务管理 1 Spring事务简介【重点】 1.1 Spring事务作用 事务作用:在数据层保障一系列的数据库操作同成功同失败 Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 1.2 案例分析Spring…

STM32--TIM定时器(2)

文章目录 输出比较PWM输出比较通道参数计算舵机简介直流电机简介TB6612 PWM基本结构PWM驱动呼吸灯PWM驱动舵机PWM控制电机 输出比较 输出比较,简称OC(Output Compare)。 输出比较的原理是,当定时器计数值与比较值相等或者满足某种…

【数据结构OJ题】有效的括号

原题链接:https://leetcode.cn/problems/valid-parentheses/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 这道题目主要考查了栈的特性: 题目的意思主要是要做到3点匹配:类型、顺序、数量。 题目给的例子是比较…

【Hibench 】完成 HDP-Spark 性能测试

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的…

单片机实训报告

这周我们进行了单片机实训,一周中我们通过七个项目1:P1 口输入/输出 2:继电器控制 3 音频控制 4:子程序设计 5:字符碰头程序设计 6:外部中断 7: 急救车与交通信号灯,练习编写了子程…

mysql 设置 mysql 日志时间与系统时间保持一致

临时设置 mysql> show variables like %log_timestamps%;-----------------------| Variable_name | Value |-----------------------| log_timestamps | UTC |-----------------------1 row in set (0.00 sec)系统是 CST , nysql 是 UTC当UTC时间为0点时&am…

docker的使用方法总结

Docker是一个非常强大的工具,它可以用于创建、部署和运行应用程序。以下是一些docker相关的常用指令, 1、查看docker版本 docker version 2、查看正在运行的Docker容器 docker ps 3、查看所有的docker容器(包括没有运行的容器&#xff0…

Python 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息

Python之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息 目录 Python之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息

SCF金融公链新加坡启动会 创新驱动未来

新加坡迎来一场引人瞩目的金融科技盛会,SCF金融公链启动会于2023年8月13日盛大举行。这一受瞩目的活动将为金融科技领域注入新的活力,并为广大投资者、合作伙伴以及关注区块链发展的人士提供一个难得的交流平台。 在SCF金融公链启动会上, Wil…

级联(数据字典)

二级级联: 一:新建两个Bean 父级: /*** Description 数据字典* Author WangKun* Date 2023/7/25 10:15* Version*/ Data AllArgsConstructor NoArgsConstructor TableName("HW_DICT_KEY") public class DictKey implements Seri…

excel快速选择数据、选择性粘贴、冻结单元格

一、如何快速选择数据 在excel中,希望选择全部数据,通常使用鼠标选择数据然后往下拉,当数据很多时,也可单击单元格使用ctrl A选中全部数据,此外,具体介绍另一种方法。 操作:ctrl shift 方向…

【C++】STL---list

STL---list 一、list 的介绍二、list 的模拟实现1. list 节点类2. list 迭代器类(1)前置(2)后置(3)前置- -、后置- -(4)! 和 运算符重载(5)* 解引用重载 和 …

css3新增属性

文章目录 css3新增属性box-shadowborder-radius设置椭圆 position: sticky;渐变背景线性渐变可重复的渐变背景 径向渐变可重复的渐变背景 过渡分属性 动画关键帧与transition的关系demo 变形平移使用 旋转使用 其他使用立体效果perspective元素位于3D空间还是平面中 缩放变形的…

tornado在模板中遍历二维数组

要在Tornado模板中遍历一个二维数组&#xff0c;你可以使用Tornado的模板语法来实现迭代和显示数组中的每个元素。 以下是一个示例&#xff0c;演示如何在Tornado模板中遍历和显示二维数组的内容&#xff1a; template.html: <!DOCTYPE html> <html> <head&g…

小米分享 | 解密面试题:网易面试如何回答“创建线程有哪几种方式?”

大家好&#xff0c;我是你们的小米&#xff01;今天要和大家一起探讨一个在技术面试中常见的问题&#xff1a;创建线程有哪几种方式&#xff1f;这可是个经典面试题哦&#xff01;不过别担心&#xff0c;小米在这里为你详细解析&#xff0c;帮你轻松应对&#xff0c;让你在面试…

深度学习在MRI运动校正中的应用综述

运动是MRI中的主要挑战之一。由于MR信号是在频率空间中获取的&#xff0c;因此除了其他MR成像伪影之外&#xff0c;成像对象的任何运动都会导致重建图像中产生伪影。深度学习被提出用于重建过程的几个阶段的运动校正。广泛的MR采集序列、感兴趣的解剖结构和病理学以及运动模式&…

用dcker极简打包java.jar镜像并启动

用dcker极简打包java.jar镜像并启动 一、本地打包好jar包 二、新建文件夹&#xff0c;将步骤1中的jar包拷贝到文件夹下 三、同目录下新建Dockerfile ## 基础镜像&#xff0c;这里用的是openjdk:8 FROM openjdk:8## 将步骤一打包好的jar包 拷贝到镜像的 跟目录下[目录可以自定义…

Oracle字段长度不足位数补零

Oracle字段长度不足位数补零 有时候从数据库中取出的月份值是1&#xff0c;而不是01&#xff0c;该怎么办呢 SELECTLPAD( CODE_MONTH, 2, 0 ) FROMtb_cube_TY001 WHERECODE_BM_MEATYPE TY20 AND code_measure MYLX01 AND code_month <> ~ AND CODE_ENTITY 01A AND…