在 Linux 系统中安装MySQL 8.x(Ubuntu和CentOS)

文章目录

  • 0. 前言
  • 1. 查看 Linux 的发行版本
  • 2. 在 Ubuntu 中安装MySQL 8.x
    • 2.1 更新包索引
      • 2.1.1 更改 Ubuntu 的镜像源
      • 2.1.2 更新软件包、升级软件包(耗时可能较长)
      • 2.1.3 可能遇到的问题
    • 2.2 安装MySQL
    • 2.3 安全配置
      • 2.3.1 密码安全级别
      • 2.3.2 删除匿名用户
      • 2.3.3 禁止远程 root 用户登录
      • 2.3.4 删除测试数据库以及对测试数据库的访问权限
      • 2.3.5 立即重新加载权限表
    • 2.4 创建新用户、修改用户的权限、修改用户密码
      • 2.4.1 查看 MySQL 当前有哪些用户
      • 2.4.2 创建一个新用户,用于远程访问
      • 2.4.3 修改用户的访问权限
      • 2.4.4 修改用户的密码
    • 2.5 查看 MySQL 的运行状态
    • 2.6 设置 MySQL 开机自启
    • 2.7 开放防火墙的 3306 端口
    • 2.8 修改MySQL远程连接配置
    • 2.9 创建数据库
    • 2.10 为用户赋予权限
    • 2.11 测试连接
  • 3. 在 CentOS 中安装MySQL 8.x
    • 3.1 配置 yum 仓库
    • 3.2 使用 yum 安装MySQL 8.x
    • 3.3 启动 MySQL 并设置 MySQL 开机自启
    • 3.4 检查 MySQL 的运行状态
    • 3.5 配置
      • 3.5.1 获得 root 用户的初始密码
      • 3.5.2 登录
      • 3.5.3 修改 root 用户的密码
    • 3.6 创建一个新用户,用于远程连接
    • 3.7 创建数据库
    • 3.8 为用户赋予权限
    • 3.9 开放防火墙的 3306 端口
    • 3.10 测试连接
    • 3.11 安全配置(可跳过)

0. 前言

在 Linux 系统中,可以通过 宝塔 等工具一键安装 MySQL,但是用 宝塔 安装 MySQL 8.x,对 Linux 的内存大小有限制(内存要大于等4G),解除这个限制比较麻烦,不建议使用

通用的安装方法就是通过指令安装,接下来为大家演示如何使用指令安装MySQL 8.x


本次演示使用的Linux版本为

  • Ubuntu 22.04 LTS
  • CentOS 7

Ubuntu 22.04 的下载地址:Ubuntu 22.04

在这里插入图片描述


CentOS 7 的下载地址:CentOS 7
在这里插入图片描述

1. 查看 Linux 的发行版本

输入以下指令查看 Linux 的发行版本

cat /etc/os-release

Ubuntu

在这里插入图片描述

CentOS

在这里插入图片描述

2. 在 Ubuntu 中安装MySQL 8.x

2.1 更新包索引

2.1.1 更改 Ubuntu 的镜像源

更新包索引前,先运行以下指令查看 Ubuntu 的镜像源

sudo cat /etc/apt/sources.list
  • 如果显示 Ubuntu 的镜像源为官方源(http://cn.archive.ubuntu.com/ubuntu/),先运行以下指令更改 Ubuntu 的镜像源
  • 如果不是官方源,可以跳过更改 Ubuntu 镜像源这一步
sudo vi /etc/apt/sources.list

先删除文件的所有内容(快捷键:dG),

再将以下内容(阿里云的 Ubuntu 镜像源)填充到文件中,最后保存文件

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

重启 NetworkManager 服务(一定要执行这条指令!!!

sudo systemctl restart NetworkManager

温馨提醒:如果在执行与 apt 有关的指令时遇到以下问题,请执行这条指令(sudo systemctl restart NetworkManager

在这里插入图片描述

2.1.2 更新软件包、升级软件包(耗时可能较长)

更新 apt 包管理器中的软件包列表

sudo apt update

升级系统中可升级的软件包

sudo apt upgrade -y

2.1.3 可能遇到的问题

  • 如果在更新包索引时遇到以下警告,是因为 Ubuntu 中安装了 docker ,但没有配置 docker 的 apt 镜像源
  • 没有配置镜像源,就会从 docker 官网下载 与 docker 相关的包 ,但 docker 官网的站点部署在国外,访问速度很慢,很容易连接超时,一旦连接超时就会给出警告

这些警告不影响我们安装 MySQL 8.x,可以忽略


运行sudo apt update指令时可能会遇到的警告信息

在这里插入图片描述


运行sudo apt upgrade -y指令时可能会遇到的警告信息

在这里插入图片描述


当然,如果你忍受不了这些警告信息,可以运行以下指令后再次执行更新包索引的指令

# 安装 curl 工具
sudo apt install curl
# 获取阿里云的 docker GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 阿里云的 docker apt 镜像源
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

2.2 安装MySQL

Ubuntu 18及以上的默认软件仓库已经包含MySQL 8.0,可以直接安装,无需添加额外的仓库

sudo apt install mysql-server -y

安装成功后运行以下指令查看 MySQL 的版本

mysql --version

在这里插入图片描述

2.3 安全配置

安装 MySQL 后,一个重要的步骤是执行安全配置脚本,提高 MySQL 服务器的安全性

sudo mysql_secure_installation

输入 y 开始进行安全配置

在这里插入图片描述


2.3.1 密码安全级别

在这里插入图片描述

密码安全级别有三个:

  • LOW(弱密码):长度至少要有8个字符
  • MEDIUM(中等强度密码):长度至少要有8个字符,需要包含数字、大小写字母以及特殊符号
  • STRONG(强密码):长度至少要有8个字符,包含数字、大小写字母、特殊符号,而且不能是容易被猜到的常见词汇

输入 0 代表使用弱密码,输入 1 代表使用中等强度密码,输入 2 代表使用强密码

2.3.2 删除匿名用户

在这里插入图片描述

输入 y 即可

2.3.3 禁止远程 root 用户登录

在这里插入图片描述

输入 y 即可

2.3.4 删除测试数据库以及对测试数据库的访问权限

在这里插入图片描述

输入 y 即可

2.3.5 立即重新加载权限表

在这里插入图片描述

输入 y 即可


显示All done!就代表配置成功了

2.4 创建新用户、修改用户的权限、修改用户密码

先在终端中打开MySQL

sudo mysql

2.4.1 查看 MySQL 当前有哪些用户

SELECT user,host FROM mysql.user;

在这里插入图片描述

所有用户默认都是 localhost 访问权限,只能本地访问,不能远程访问

2.4.2 创建一个新用户,用于远程访问

不建议使用 root 用户进行远程访问,可以创建一个新用户进行远程访问

CREATE USER 'wuyanzu'@'%' IDENTIFIED BY '!UpuSZAxG#1&2^cG';

2.4.3 修改用户的访问权限

先切换到 mysql 数据库

use mysql

使用以下指令更改用户的访问权限

  1. localhost代表只能在本地访问
  2. %是一个通配符,代表root用户可以从任何主机连接到数据库服务器
update user set host = 'localhost' where user = 'root';
update user set host = '%' where user = 'root';

重新加载权限表

flush privileges;

2.4.4 修改用户的密码

以 root 用户为例

ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '_1Ejz8T#jiaarKz^';

如果遇到以下错误,是因为你的密码太简单了,达不到你选择的密码安全级别的标准

在这里插入图片描述

2.5 查看 MySQL 的运行状态

先退出 mysql

exit;

查看 MySQL 的运行状态

systemctl status mysql

在这里插入图片描述

2.6 设置 MySQL 开机自启

sudo systemctl enable mysql

在这里插入图片描述

2.7 开放防火墙的 3306 端口

  1. 如果你使用的是云服务器,在安全组中放行 3306 端口
  2. 如果你安装了宝塔,除了在安全组中放行 3306 端口,还要在宝塔中放行 3306 端口

完成以上两个操作后,输入以下指令开放 3306 端口

sudo ufw allow 3306
sudo ufw reload

2.8 修改MySQL远程连接配置

先安装 vim 编辑器

sudo apt install vim -y

如果要远程访问MySQL,需要修改以下配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在这里插入图片描述

127.0.0.1改为0.0.0.0

0.0.0.0

重启 MySQL 服务

sudo systemctl restart mysql

2.9 创建数据库

先以 root 用户登录到 MySQL

mysql -u root -p
CREATE DATABASE IF NOT EXISTS blog;

查看所有数据库

SHOW DATABASES;

2.10 为用户赋予权限

GRANT ALL PRIVILEGES ON blog.* TO 'wuyanzu'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  1. ALL PRIVILEGES表示赋予该用户所有权限(insert、delete、select、update)
  2. blog代表名为 blog 的数据库
  3. blog.*代表 blog 数据库中的所有表

授予 wuyanzu 用户所有数据库的权限(不推荐使用)

GRANT ALL PRIVILEGES ON *.* TO 'wuyanzu'@'%' WITH GRANT OPTION;
# 刷新权限列表
FLUSH PRIVILEGES;

2.11 测试连接

通过 Navicat 等工具连接MySQL

在这里插入图片描述

3. 在 CentOS 中安装MySQL 8.x

注意:安装操作需要 root 权限

3.1 配置 yum 仓库

# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
# 安装 Mysql8.x 版本的 yum 库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

3.2 使用 yum 安装MySQL 8.x

yum -y install mysql-community-server

安装成功后运行以下指令查看 MySQL 的版本

mysql --version

在这里插入图片描述

3.3 启动 MySQL 并设置 MySQL 开机自启

# 启动 MySQL
systemctl start mysqld
# 设置 MySQL 开机自启
systemctl enable mysqld

3.4 检查 MySQL 的运行状态

设置时区为上海时区(可忽略)

timedatectl set-timezone Asia/Shanghai
systemctl status mysqld

在这里插入图片描述

3.5 配置

3.5.1 获得 root 用户的初始密码

通过grep命令,在/var/log/mysqld.log文件中过滤temporary password关键字,得到初始密码

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

3.5.2 登录

使用初始密码登录 root 用户

mysql -u root -p

登录成功后的界面

在这里插入图片描述

3.5.3 修改 root 用户的密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '&EAx3s%WJzgbT7GW';

密码需要符合以下规则:

  • 大于8位
  • 有大写字母,有特殊符号

请妥善保管好密码

3.6 创建一个新用户,用于远程连接

不建议使用 root 用户进行远程访问,可以创建一个新用户进行远程访问

create user 'wuyanzu'@'%' IDENTIFIED WITH mysql_native_password BY 'v&!w7Eik6cmt#Uff';

3.7 创建数据库

CREATE DATABASE IF NOT EXISTS blog;

3.8 为用户赋予权限

GRANT ALL PRIVILEGES ON blog.* TO 'wuyanzu'@'%' WITH GRANT OPTION;
  1. ALL PRIVILEGES表示赋予该用户所有权限(insert、delete、select、update)
  2. blog代表名为 blog 的数据库
  3. blog.*代表 blog 数据库中的所有表
# 刷新权限列表
FLUSH PRIVILEGES;

授予 wuyanzu 用户所有数据库的权限(不推荐使用)

GRANT ALL PRIVILEGES ON *.* TO 'wuyanzu'@'%' WITH GRANT OPTION;
# 刷新权限列表
FLUSH PRIVILEGES;

3.9 开放防火墙的 3306 端口

  1. 如果你使用的是云服务器,在安全组中放行 3306 端口
  2. 如果你安装了宝塔,除了在安全组中放行 3306 端口,还要在宝塔中放行 3306 端口

完成以上两个操作后,输入以下指令开放 3306 端口

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

查看当前防火墙开放了哪些端口

sudo firewall-cmd --zone=public --list-ports

3.10 测试连接

通过 Navicat 等工具连接MySQL

在这里插入图片描述

3.11 安全配置(可跳过)

参考本文的 2.3 安全配置 章节


进行安全配置前需要输入 root 用户的密码

输入 root 用户的密码后会询问我们是否要修改 root 用户的密码,我们输入 n 即可

在这里插入图片描述

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

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

相关文章

华为HCIP Datacom H12-821 卷41

1.多选题 以下关于BGP Atomic_Aggregate和Aggregator的描述,正确的是哪些项? A、Aggregator属性属于可选过渡属性 B、Atomic_Aggregate属于公认任意属性 C、收到携带Atomic_Aggregate属性的路由表示这条路由不能再度明细化 D、 Agregator表示某条路由可能出现…

各类专业技术的pdf电子书

从业多年,收集了海量的pdf电子书籍,感兴趣的私聊。

设计模式学习(二)工厂模式——抽象工厂模式+注册表

设计模式学习(二)工厂模式——抽象工厂模式注册表 前言使用简单工厂改进使用注册表改进参考文章 前言 在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点:①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论 使用…

【node-RED 4.0.2】连接 Oracle 数据库踩坑解决,使用模组:node-red-contrib-agur-connector

关于 Oracle Oracle 就好像一张吸满水的面巾纸,你稍一用力它就烂了。 PS:我更新了更好的模组的教程,这篇已经是旧款的教程,但是它仍旧包含了必要的配置环境变量等操作。 最新的模组教程:node-red-contrib-agur-connec…

数据湖仓一体(一) 编译hudi

目录 一、大数据组件版本信息 二、数据湖仓架构 三、数据湖仓组件部署规划 四、编译hudi 一、大数据组件版本信息 hudi-0.14.1zookeeper-3.5.7seatunnel-2.3.4kafka_2.12-3.5.2hadoop-3.3.5mysql-5.7.28apache-hive-3.1.3spark-3.3.1flink-1.17.2apache-dolphinscheduler-3.1.9…

基于AT89C51单片机的16×16点阵LED显示器字符滚动显示设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机的1616点阵LED显示器字符滚动显示设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。 目录 仿真效果图 仿真图 代码 系统论文 资源下载 设计的内容和要求 熟悉51系…

基于视觉工具箱和背景差法的行人检测,行走轨迹跟踪,人员行走习惯统计matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 在三维图中,幅度越大,则表示人员更习惯的行走路线。 2.算法运行软件版本 matlab2022a 3.部分核…

css基础(1)

CSS CCS Syntax CSS 规则由选择器和声明块组成。 CSS选择器 CSS选择器用于查找想要设置样式的HTML元素 一般选择器分为五类 Simple selectors (select elements based on name, id, class) 简单选择器(根据名称、id、类选择元素) //页面上的所有 …

【经验分享】关于静态分析工具排查 Bug 的方法

文章目录 编译器的静态分析cppcheck安装 cppcheck运行 cppcheck 程序员的日常工作,不是摸鱼扯皮,就是在写 Bug。虽然这是一个梗,但也可以看出,程序员的日常一定绕不开 Bug。而花更少的时间修复软件中的 Bug,且不引入新…

Bug:时间字段显示有问题

Bug:时间字段显示有问题 文章目录 Bug:时间字段显示有问题1、问题2、解决方法一:添加注解3、解决方法二:消息转换器自定义对象映射器配置消息转换器 1、问题 ​ 在后端传输时间给前端的时候,发现前端的时间显示有问题…

汽车开发阶段(OTS/VFF/PVS/OS/SOP)

OTS:即英语中的Off Tooling Sample,通常被称为工装样件。它指的是通过配套设备、工装夹具以及模具制造出来的样品,但并不强调生产的时间效率,主要用于验证产品的设计能力。 VFF:在德语中表示为Vorserien Freigabefahr…

太速科技-FMC207-基于FMC 两路QSFP+光纤收发子卡

FMC207-基于FMC 两路QSFP光纤收发子卡 一、板卡概述 本卡是一个FPGA夹层卡(FMC)模块,可提供高达2个QSFP / QSFP 模块接口,直接插入千兆位级收发器(MGT)的赛灵思FPGA。支持利用Spartan-6、Virtex-6、Kin…

eNsp公司管理的网络NAT策略搭建

实验拓扑图 实验需求: 7,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 8,分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的http服务器 9,多出口环境基于带…

JavaWeb(四:Ajax与Json)

一、Ajax 1.定义 Ajax(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML AJAX 不是新的编程语言,指的是⼀种交互方式:异步加载。 客户端和服务器的数据交互更新在局部页面的技术,不需要刷新…

VUE:跨域配置代理服务器

//在vite.config。js中,同插件配置同级进行配置server:{proxy:{"/myrequest":{//代理域名,可自行修改target:"https://m.wzj.com/",//访问服务器的目标域名changeOrigin:true,//允许跨域configure:(proxy,options) > {proxy.on(&…

未知物材料成分配方检测分析

材料成分配方分析是一种通过分析材料的化学成分、结构和性质来确定其组成和配方的方法。这对于产品质量控制、新产品研发、工业问题解决和环保等领域具有重要意义。进行材料成分配方分析通常需要以下步骤: 1. 样品采集:采集需要分析的材料样品&#xff0…

从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望

我在2021年底开始使用Polars和DuckDB。我立刻意识到这些库很快就会成为数据科学生态系统的核心。自那时起,这些库的受欢迎程度呈指数级增长。 在这篇文章中,我做出了一些关于未来几年数据科学领域的发展方向和原因的预测。 这篇文章旨在检验我的预测能力…

再谈有关JVM中的四种引用

1.强引用 强引用就是我们平时使用最多的那种引用,就比如以下的代码 //创建一个对象 Object obj new Object();//强引用 这个例子就是创建了一个对象并建立了强引用,强引用一般就是默认支持的当内存不足的时候,JVM开始垃圾回收&#xff0c…

【Linux系统编程】软硬链接和动静态库

一,硬链接 1-1,硬链接的认识 Linux下的硬链接本质是在指定的目录下,插入新的文件名和目标文件的眏射关系,并让inode的引用计数加一,这里我们通过 ls 指令可查看到文件详细信息种的硬链接数。这里可参考文件系统的文章…

Linux - 冯-诺依曼体系结构、初始操作系统

目录 冯•诺依曼体系 结构推导 内存提高效率的方法 数据的流动过程 体系结构相关知识 初始操作系统 定位 设计目的 操作系统之上之下分别有什么 管理精髓:先描述,再组织 冯•诺依曼体系 结构推导 计算机基本工作流程图大致如下: 输入设备&a…