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

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

查看 MySQL 的运行状态

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

在这里插入图片描述

Linux系统安装和配置MySQL数据库,可以按照以下步骤进行操作: 1. 打开终端,并使用root或具有管理员权限的用户登录到Linux系统。 2. 使用包管理器安装MySQL服务器。具体的命令取决于你使用的Linux发行版。以下是常见发行版的安装命令: - Ubuntu/Debian: `sudo apt-get install mysql-server` - CentOS/Fedora: `sudo yum install mysql-server` - Arch Linux: `sudo pacman -S mysql` 3. 安装过程,你可能会被要求输入MySQL的root用户密码。请设置一个强密码并记住它。 4. 安装完成后,启动MySQL服务。使用以下命令: - Ubuntu/Debian: `sudo systemctl start mysql` - CentOS/Fedora: `sudo systemctl start mysqld` - Arch Linux: `sudo systemctl start mariadb` 5. 启动MySQL服务后,运行以下命令来确保MySQL服务在系统启动时自动启动: - Ubuntu/Debian: `sudo systemctl enable mysql` - CentOS/Fedora: `sudo systemctl enable mysqld` - Arch Linux: `sudo systemctl enable mariadb` 6. 接下来,运行MySQL安全性脚本来提高安全性并进行一些基本配置。使用以下命令: - `sudo mysql_secure_installation` 7. 脚本将引导你进行一些配置选项,例如删除匿名用户、禁止远程root登录等。根据需要进行选择。 8. 完成安装和配置后,使用以下命令登录到MySQL数据库服务器: - `mysql -u root -p` 9. 输入之前设置的MySQL root用户密码,即可成功登录到MySQL数据库。 通过以上步骤,你就可以在Linux系统成功安装并配置MySQL数据库了。你可以使用MySQL客户端工具进行数据库的管理和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聂 可 以

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值