CentOS7源码安装MySQL详细教程

news2024/12/23 11:20:42

在这里插入图片描述
😊 @ 作者: 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.rpm

rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm

rpm -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.coloradmin.cn/o/875352.html

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

相关文章

selenium的环境搭建

selenium是一个自动化测试框架,主要针对web项目进行UI自动化。他的工作原理如下图: 那么我们在学习selenium之前就需要就行一个环境的搭建,就是要下载配置我们的浏览器驱动。进入正题: CNPM Binaries Mirror 在网站中选择对应自…

五种方法,教你如何在Mac上查看文件完整路径

在MacOS上,Finder显示文件默认是不带路径展示的,你进入某个文件夹只会显示文件夹的名称而已,如下图: 那如何获取或者显示文件的完整路径呢?在MacOS中有五种方法可以显示文件完整路径。 第一种:使用【终端】…

go入门实践四-go实现一个简单的tcp-socks5代理服务

文章目录 前言socks协议简介go实现一个简单的socks5代理运行与压测抓包验证 前言 SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。协议在应用层和传输层之间。 本文使用先了解socks协议。然后实现一个socks5的tcp代理服务端。最后&#…

excel填数据转json格式

定制化比较严重,按需更改 excel文件如下 代码 # -*- coding: utf-8 -*- import oss2 import shutil import sys import xlwt import xlrd import json from datetime import datetime, timedeltafile1 "C:\\Users\\cxy\\Desktop\\generate.xls" #打开表…

【Spring专题】手写简易Spring容器过程分析——引导篇

目录 前言说在前面阅读准备 思路整理手写源码示例一、手写前的准备1.1 注解1.2 测试Bean1.3 调用实例 二、构造方法(构建基本流程)三、实现scan()方法3.1 doGetScanPackage():获取扫描路径3.2 doLoadClassFromDiskAndScan():从电脑…

【100天精通python】Day34:使用python操作数据库_ORM(SQLAlchemy)使用

目录 专栏导读 1 ORM 概述 2 SQLAlchemy 概述 3 ORM:SQLAlchemy使用 3.1 安装SQLAlchemy: 3.2 定义数据库模型类: 3.3 创建数据表: 3.4 插入数据: 3.5 查询数据: 3.6 更新数据: 3.7 删…

24届最新计算机毕业设计选题推荐 -计算机专业毕业设计题目参考大全

大家好,我们是竹林可以(计算机毕ye设ji代做团队),大四的同学马上要开始毕业设计开题啦,大家要好好准备哦。 学长学姐们给大家详细整理了计算机毕设最新选题,我们专注毕ye设ji多年,积累了丰富的…

【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍登场角色应用场景 案例实现案例一类图实现 案例二:借贷平台源码剖析传统方式实现分析状态修改流程类图实现 案例三:金库警报系统系统的运行逻辑伪代码传统实现方式使用状态模式 类图实现分析问题问题一问题二 总结文章说明…

element-ui的el-dialog,简单的封装。

el-dialog是使用率很高的组件 使用el-dialog很多都是按照文档的例子,用一个变量控制是否显示,再来一个变量控制标题。 如果我这个对话框多个地方使用的话还要创建多个变量,甚至关闭之后还要清空一些变量,应该可以简化一点。我写…

数据结构:力扣OJ题(每日一练)

目录 题一:环形链表 思路一: 题二:复制带随机指针的链表 思路一: 本人实力有限可能对一些地方解释的不够清晰,可以自己尝试读代码,望海涵! 题一:环形链表 给定一个链表的头节点…

奥威BI数据可视化工具:报表就是平台,随时自助分析

别的数据可视化工具,报表就只是报表,而奥威BI数据可视化工具,一张报表就约等于一个平台,可随时展开多维动态自助分析,按需分析,立得数据信息。 奥威BI是一款多维立体分析数据的数据可视化工具。它可以帮助…

Camtasia2023最新专业的电脑屏幕录制和视频剪辑软件

Camtasia专业的屏幕录制和视频剪辑软件3000多万专业人士在全球范围内使用Camtasia展示产品,教授课程,培训他人,以更快的速度和更吸引人的方式进行沟通和屏幕分享。使您在Windows和!Camtasia是一款功能强大的屏幕录制和视频编辑软件…

办理流量卡也是有条件的,这五种情况就不能办理流量卡!

流量卡资费虽然便宜,但也不是谁都可以办得,以下这几种情况是办不了的! 看到网上的流量卡资费便宜,也想随手申请一张,别想得太简单了,流量卡也不是那么好办理的,换句话来讲,办理流量…

【Quarkus技术系列】「云原生架构体系」在云原生时代下的Java“拯救者”是Quarkus,那云原生是什么呢?

云原生时代下的Java"拯救者" 在云原生时代,其实Java程序是有很大的劣势的,以最流行的spring boot/spring cloud微服务框架为例,启动一个已经优化好,很多bean需要lazy load的application至少需要3-4秒时间,内…

Chrome小技巧---多用户登录同一网站不串信息

测试中经常需要用到浏览器需要登录多个账号 但是有一个问题就是会串号 通过添加不同的用户再用这用户登录,就不串号了: 还可以在浏览器的偏好设置中添加启动地址 这样每次打开,就进到设置的地址中了

如何将阿里云WiredTiger引擎的MongoDB物理备份文件恢复至自建数据库

数据库操作一直是一个比较敏感的话题,动不动“删库跑路”,可见数据库操作对于一个项目而言是非常重要的,我们有时候会因为一个游戏的严重bug或者运营故障要回档数据库,而你们刚好使用的是阿里云的Mongodb,那么这篇文章…

用ThreadLocal做链路追踪(演变升级版)

前言 1、ThreadLocal是线程变量,线程之间彼此隔离,天生线程安全。因为它是跟着线程走的,考虑到这点,它很适合做链路追踪(TraceId) 2、当我们写的接口接收到其它地方(可能是前端、也可能是其它服…

python如何开发一个电商进销存管理系统?

让我们来看一下题主的需求: 管理公司的淘宝天猫平台,后端仓库,采购进行数据同步。其中最主要的还是要对接淘宝API ,实现实时订单的通知,同步淘宝订单,管理买家信息,发货,财务统计等…

亚马逊举报差评有什么作用?有没有可以举报差评的软件?

在亚马逊上举报差评具有以下作用: 1、维护信誉和公平性: 举报差评有助于维护亚马逊市场的信誉和公平性。虚假或不当的差评可能会误导其他消费者,影响他们做出购买决策。通过举报这些问题,可以确保评价体现真实的用户体验&#xf…

【SpringCloud技术专题】「Resilience4j入门指南」(1)轻量级熔断框架的入门指南

基础介绍 Resilience4j是一款轻量级,易于使用的容错库,其灵感来自于Netflix Hystrix,但是专为Java 8和函数式编程而设计。轻量级,因为库只使用了Vavr,它没有任何其他外部依赖下。相比之下,Netflix Hystrix…