在 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.mzph.cn/bicheng/47153.shtml

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

相关文章

6.Dockerfile及Dockerfile常用指令

Dockerfile是构建docker镜像的脚本文件 Dockerfile有很多的指令构成,指令由上到下依次运行。 每一条指令就是一层镜像,层越多,体积就越大,启动速度也越慢 井号开头的行是注释行。指令写大写写小写都行,但一般都写为…

介绍 Elasticsearch 中的 Learning to Tank - 学习排名

作者:来自 Elastic Aurlien Foucret 从 Elasticsearch 8.13 开始,我们提供了原生集成到 Elasticsearch 中的学习排名 (learning to rank - LTR) 实现。LTR 使用经过训练的机器学习 (ML) 模型为你的搜索引擎构建排名功能。通常,该模型用作第二…

nginx代理缓存

在服务器架构中,反向代理服务器除了能够起到反向代理的作用之外,还可以缓存一些资源,加速客户端访问,nginx的ngx_http_proxy_module模块不仅包含了反向代理的功能还包含了缓存功能。 1、定义代理缓存规则 参数详解: p…

减分虎-交管12123学习题目及答案

学法减分是对驾驶证已经存在的记分进行减免,并不是给驾驶证进行加分,不是代替违章扣分。学法免费获取的分值正是对扣分记录的清除。比如违章被扣6分,通过学法免分考试把6分清空重新开始。 学法减分政策为驾驶员提供了一次难得的加分机会。然而…

WordPress 6.6 “Dorsey多尔西”发布

WordPress 6.6 “Dorsey多尔西”已经发布,它以传奇的美国大乐队领袖 Tommy Dorsey 名字命名。Dorsey 以其音调流畅的长号和作品而闻名,他的音乐以其情感深度和充满活力的能量吸引了观众。 当您探索 WordPress 6.6 的新功能和增强功能时,让您的…

MBR40150FCT-ASEMI无人机专用MBR40150FCT

编辑:ll MBR40150FCT-ASEMI无人机专用MBR40150FCT 型号:MBR40150FCT 品牌:ASEMI 封装:TO-220F 批号:最新 最大平均正向电流(IF):40A 最大循环峰值反向电压(VRRM&a…

部署kafkamanager

1,检查kafka的版本 到lib下查看 libs/kafka-clients-0.11.0.3.jar kafka的版本 0.11 2,下载kafkamanager 链接: https://pan.baidu.com/s/1qYifoa4 密码:el4o 3,解压后更改该conf下conf/application.conf 中zkhosts …

论文翻译 | Successive Prompting for Decomposing Complex Questions 分解复杂问题的连续提示

摘要 回答需要做出潜在决策的复杂问题是一项具有挑战性的任务,尤其是在监督有限的情况下。 最近的研究利用大型语言模型(LMs)的能力,在少量样本设置中通过展示如何在单次处理复杂问题的同时输出中间推理过程,来执行复杂…

2024年金航标和萨科微扩张

近年电子信息产业链的外迁和世界经济的低迷,各行各业都很卷,加班加点但业绩负增长是常态,互联网大厂阿里巴巴大裁员、字节跳动裁到了大动脉、京东刘强东抛弃躺平的兄弟、深圳华强北做电子元器件的老板老板娘们一脸茫然,周围都弥漫…

2024华为数通HCIP-datacom最新题库(变题更新⑥)

请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了,如果你准备去考试,还是用的之前的题库,切记暂缓。 1、…

CSI-2介绍

CSI-2介绍 1.CSI-2是什么2.CSI-2功能简述3.分层传输3.1应用层(Application Layer)3.2协议层(Protocol Layer)3.3物理层(PHY Layer) 4.支持传输数据类型5.版本5.1、CSI-2 1.05.2、CSI-2 2.0 6.框图6.1CSI2&a…

【手写数据库内核组件】0501多线程并发模型,任务分发多工作者执行架构实现,多线程读写状态时volatile存储类型使用技巧

0501 多线程管理 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0501 多…

深入理解PostgreSql域类型(Domain),灵活定义数据约束,让表结构设计更加严谨

在PostgreSQL中,域(Domain)是一种用户定义的数据类型,它基于系统内已存在的数据类型,并可以附加约束条件。使用域可以增强数据的完整性和一致性,因为它允许开发者对特定列设定更为具体的规则,比…

LeetCode 链表OJ题

1.消失的数字 题目信息及链接:面试题 17.04. 消失的数字 - 力扣(LeetCode) 分析: 首先我们看到题目给予了我们一个数组,要求我们找到消失的数字,这个消失的数字指的是所给我们的数组中排序后少掉的数字&…

用go实现限流算法

文章目录 固定窗口优缺点:适用场景:总结: 滑动窗口优缺点:适用场景:总结: 漏桶限流器优缺点:适用场景:总结: 令牌桶优缺点:适用场景:总结&#xf…

【Python】Selenium怎么切换浏览器的页面

我们在爬网使用Selenium进行测试的时候,有时候想要点击浏览器里面的网址,跳到另一个页面上,获取第二个页面的内容。 可是有时候从官网进去,点击跳转到下一个页面以后,却没法定位到下一个页面的元素,这时候就…

Pytorch学习笔记day1—— 安装教程

这里写自定义目录标题 Pytorch安装方式 工作需要,最近开始搞一点AI的事情。但是这个国产的AI框架,实话说对初学者不太友好 https://www.mindspore.cn/ 比如说它不支持win下的CUDA,可是我手里只有3070Ti和4060也不太可能自己去买昇腾就有点绷不…

MongoDB教程(八):mongoDB数据备份与恢复

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言MongoDB 备…

01 机器学习概述

目录 1. 基本概念 2. 机器学习三要素 3. 参数估计的四个方法 3.1 经验风险最小化 3.2 结构风险最小化 3.3 最大似然估计 3.4 最大后验估计 4. 偏差-方差分解 5. 机器学习算法的类型 6. 数据的特征表示 7. 评价指标 1. 基本概念 机器学习(Machine Le…

程控电阻器

程控电阻器 由于要测试电阻型温度传感器,一个电阻箱又很贵,就想做一款 程控电阻器 来满足。 设计满足300Ω到400kΩ可调电阻。 设计思路 选择数字电位器去控制电阻输出,最好是精度高,范围大的数字电位器。经过寻找后,发…