在 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 即可

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法笔记自学】第 9 章 提高篇(3)——数据结构专题(2)

9.1树与二叉树 #include <cstdio>int main() {int n, m;scanf("%d%d", &n, &m);printf(n m 1 ? "Yes" : "No");return 0; } 9.2二叉树的遍历 #include <cstdio> #include <vector> using namespace std;const int…

NLP入门——RNN、LSTM模型的搭建、训练与预测

在卷积语言模型建模时&#xff0c;我们选取上下文长度ctx_len进行训练&#xff0c;预测时选取句子的最后ctx_len个分词做预测&#xff0c;这样句子的前0~seql-1-ctx_len个词对于预测没有任何帮助&#xff0c;这对于语言处理来说显然是不利的。 在词袋语言模型建模时&#xff0c…

C语言 底层逻辑详细阐述指针(一)万字讲解 #指针是什么? #指针和指针类型 #指针的解引用 #野指针 #指针的运算 #指针和数组 #二级指针 #指针数组

文章目录 前言 序1&#xff1a;什么是内存&#xff1f; 序2&#xff1a;地址是怎么产生的&#xff1f; 一、指针是什么 1、指针变量的创建及其意义&#xff1a; 2、指针变量的大小 二、指针的解引用 三、指针类型存在的意义 四、野指针 1、什么是野指针 2、野指针的成因 a、指…

【HarmonyOS】关于鸿蒙消息推送的心得体会 (一)

【HarmonyOS】关于鸿蒙消息推送的心得体会&#xff08;一&#xff09; 前言 这几天调研了鸿蒙消息推送的实现方式&#xff0c;形成了开发设计方案&#xff0c;颇有体会&#xff0c;与各位分享。 虽然没做之前觉得很简单的小功能&#xff0c;貌似只需要和华为服务器通信&…

玩转HarmonyOS NEXT之AppStorage应用全局UI状态存储

概述 AppStorage是应用全局的UI状态存储&#xff0c;是和应用的进程绑定的&#xff0c;由UI框架在应用程序启动时创建&#xff0c;为应用程序UI状态属性提供中央存储。 AppStorage是在应用启动的时候会被创建的单例。它的目的是为了提供应用状态数据的中心存储&#xff0c;这…

【HarmonyOS学习】Calendar Kit日历管理

简介 Calendar Kit提供日历与日程管理能力&#xff0c;包括日历的获取和日程的创建能力。 Calendar Kit为用户提供了一系列接口来获取日历账户&#xff0c;并使用特定的接口向日历账户中写入日程。 如果写入的日程带有提醒时间则系统会在时间到达时向用户发送提醒。 约束点…

Linux编程(通信协议---udp)

UDP&#xff08;用户数据报协议&#xff09;是一种无连接的网络协议&#xff0c;主要用于快速传输数据。以下是UDP协议的一些主要特点&#xff1a; 1. **无连接**&#xff1a;UDP是无连接的协议&#xff0c;这意味着在数据传输之前不需要建立连接。每个UDP数据包都是独立的&am…

remote: ERROR: commit b81ea84: missing Change-Id in message footer

首次拉取代码后,在本地已经编辑添加了代码并且想要提交到远端仓库 git add . git commit 当commit之后想要pull的时候报错了 git pull 执行到git pull 时出现这个问题,这是由于Change-Id没了,提示: ! [remote rejected] HEAD -> refs/for/master (commit b81ea84: mis…

git回退分支版本git reset --hard HEAD

git回退分支版本git reset --hard HEAD git reset --hard HEAD 上面命令清除本地所有修改&#xff0c;与下面相似&#xff1a; git reset --hard origin/master 等同于&#xff1a; git reset --hard HEAD~0 说明&#xff1a; HEAD 当前版本 HEAD^ 上一个版本 HEAD^^ 上上…

JVM---对象是否存活及被引用的状态

1.如何判断对象是否存活 1.1 引用计数算法 概念&#xff1a;在对象头部增加一个引用计数器,每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一&#xff1b;任何时刻计数器为零的对象就是不可能再被使用的。 优点&#xff1…

LabVIEW学习-LabVIEW储存Excel表格

上述实现了将格式化的时间和正弦波的频率振幅相位以及正弦波数据输入到excel表格中。 下面介绍其中使用到的函数&#xff1a; 1. 所在位置&#xff0c;函数选板->定时->获取日期/时间(秒) 2. 将获取的时间进行格式化处理&#xff0c;输出格式化的日期/时间字符串。 函…

AI赋能基础设施巡检,技术革新助力水泥建筑缺陷检测分析,基于YOLOv8模型开发构建水泥建筑场景下裂缝缺陷分割检测识别系统

在现代化城市建设的宏伟蓝图中&#xff0c;公路、隧道、桥梁、大坝等水泥类基础设施如同城市的血脉&#xff0c;支撑着社会的正常运转与经济的蓬勃发展。然而&#xff0c;时间的侵蚀与自然的考验使得这些建筑不可避免地面临老化与损坏的问题&#xff0c;裂缝作为其中最为常见的…

AV1 编码标准环路滤波和后处理技术概述

AV1 环路滤波 去块滤波器 在视频编码的环路滤波管道中&#xff0c;去块滤波器&#xff08;deblocking filter&#xff09;用于减少量化引起的变换块边界处的块状伪影。 总结&#xff1a; 去块滤波器的应用&#xff1a; 对于亮度&#xff08;luma&#xff09;色度分量&#xff…

minIO集成springboot

问题 minIO与spring集成。 步骤 创建桶 创建key 找到创建账号页面&#xff0c;如下图&#xff1a; 点击创建&#xff0c;如下图&#xff1a; 设置如下权限&#xff1a; {"Version": "2012-10-17","Statement": [{"Effect": &q…

华为OD算法题汇总

60、计算网络信号 题目 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n]&#xff0c;二维数组代表网格地图 array[i][j]0&#xff0c;代表i行j列是空旷位置 a…

如何在所有docker命令前加上一个sudo

如果当前登录用户不是root不用&#xff0c;使用docker命令的时候&#xff0c;需要在前面加上一个sudo 提升权限。 但是每次都加&#xff0c;就感觉特别的麻烦&#xff0c;如何简化呢&#xff1f; 解决办法 打开你的shell配置文件&#xff08;例如&#xff0c;如果你使用bash&am…

Spring Cloud Eureka快读入门Demo

1.什么是Eureka&#xff1f; Eureka 由 Netflix 开发&#xff0c;是一种基于REST&#xff08;Representational State Transfer&#xff09;的服务&#xff0c;用于定位服务&#xff08;服务注册与发现&#xff09;&#xff0c;以实现中间层服务的负载均衡和故障转移&#xff…

C语言 | Leetcode C语言题解之第239题滑动窗口最大值

题目&#xff1a; 题解&#xff1a; int* maxSlidingWindow(int* nums, int numsSize, int k, int* returnSize) {int prefixMax[numsSize], suffixMax[numsSize];for (int i 0; i < numsSize; i) {if (i % k 0) {prefixMax[i] nums[i];} else {prefixMax[i] fmax(pref…

甄选范文“论软件维护方法及其应用”软考高级论文,系统架构设计师论文

论文真题 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满足 新的需求而修改软件的活动。在软件系统运行过程中,软件需要维护的原因是多种多样的, 根据维护的原因不同,可以将软件维护分为改正性维护、适应性维护、完善性维护和预防性 维护…

Mindspore框架CycleGAN模型实现图像风格迁移|(三)损失函数计算

Mindspore框架&#xff1a;CycleGAN模型实现图像风格迁移算法 Mindspore框架CycleGAN模型实现图像风格迁移|&#xff08;一&#xff09;CycleGAN神经网络模型构建 Mindspore框架CycleGAN模型实现图像风格迁移|&#xff08;二&#xff09;实例数据集&#xff08;苹果2橘子&…