如何在CentOS 8上安装MySQL

MySQL是一个开源的关系型数据库管理系统,通常作为流行的LEMP(Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl)技术栈的一部分进行安装。它实现了关系模型和结构化查询语言(SQL)来管理和查询数据。

教程将指导如何在CentOS 8服务器上安装MySQL版本8。

先决条件

要完成本教程,需要一个运行CentOS 8的服务器。该服务器应具有具有管理权限的非root用户,并配置了firewalld防火墙。有关如何设置,请参考CentOS 8初始服务器设置指南。

步骤1 - 安装MySQL

在CentOS 8上,MySQL版本8可以从默认仓库中获取。运行以下命令以安装mysql-server包及其依赖项:

sudo dnf install mysql-server

当提示时,按y然后按ENTER确认想要继续:

输出...

安装49个包

总下载大小:46 M

安装大小:252 M

这样可以吗[y/N]:y

安装完成后,MySQL安装在服务器上,但尚未运行。刚刚安装的包将MySQL配置为名为mysqld.service的systemd服务。要使用MySQL,需要使用systemctl命令启动它:

sudo systemctl start mysqld.service

要检查服务是否正确运行,请运行以下命令。注意,对于许多systemctl命令(包括start和这里显示的status),不需要在服务名称后包含.service:

sudo systemctl status mysqld

如果MySQL成功启动,输出将显示MySQL服务处于活动状态:

输出●mysqld.service - MySQL 8.0数据库服务器

加载:已加载(/usr/lib/systemd/system/mysqld.service;已启用;供应商预设:已禁用)

活跃:活跃(运行)自2020年3月12日14:07:41 UTC起;1分钟7秒前

主PID:15723(mysqld)

状态:“服务器运行正常”

任务:38(限制:5056)

内存:474.2M

CGroup:/system.slice/mysqld.service

└─15723 /usr/libexec/mysqld --basedir=/usr

3月12日14:07:32 cent-mysql-3 systemd[1]:启动MySQL 8.0数据库服务器...

3月12日14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]:初始化MySQL数据库

3月12日14:07:41 cent-mysql-3 systemd[1]:启动MySQL 8.0数据库服务器。

接下来,使用以下命令设置MySQL在服务器启动时启动:

sudo systemctl enable mysqld

注意:如果想更改此行为并禁用MySQL在启动时启动,可以通过运行以下命令实现:

sudo systemctl disable mysqld

现在,MySQL已安装、运行并已在服务器上启用。接下来,将介绍如何使用随MySQL实例预安装的shell脚本来加强数据库的安全性。

步骤2 - 保护MySQL

MySQL包括一个安全脚本,允许更改一些默认配置选项以提高MySQL的安全性。要使用安全脚本,请运行以下命令:

sudo mysql_secure_installation

这将引导完成一系列提示,询问是否希望对MySQL安装的安全选项进行某些更改。第一个提示将询问是否希望设置Validate Password插件,可以使用它来测试MySQL密码的强度。

如果选择设置Validate Password插件,脚本将询问选择密码验证级别。最强大的级别(通过输入2选择)将要求密码至少为8个字符长,并包含大写字母、小写字母、数字和特殊字符的混合:

输出保护MySQL服务器部署。

使用空白密码连接到MySQL

VALIDATE PASSWORD COMPONENT可用于测试密码并提高安全性。它检查密码的强度并允许用户只设置足够安全的密码。是否希望设置VALIDATE PASSWORD组件?

按y|Y为是,按任何其他键为否:Y

有三个级别的密码验证策略:

低 长度≥8

中等 长度≥8,数字,大小写混合,特殊字符

强 长度≥8,数字,大小写,特殊字符和字典文件

请输入0=低,1=中等,2=强:2

无论选择是否设置Validate Password插件,下一个提示都将是为MySQL root用户设置密码。输入然后确认选择的安全密码:

输出

请在这里为root设置密码。

新密码:

重新输入新密码:

如果使用了Validate Password插件,将收到有关新密码强度的反馈。然后脚本将询问是否希望继续使用刚刚输入的密码,或者是否希望输入一个新密码。假设对刚刚输入的密码的强度感到满意,按Y继续脚本:

输出

密码估计强度:100

是否希望继续使用提供的密码?(按y|Y为是,按任何其他键为否):Y

接下来,可以按Y然后按ENTER接受所有后续问题的所有默认值。这将删除一些匿名用户和测试数据库,禁用远程root登录,并加载这些新规则,以便MySQL立即遵守所做的更改。

这样,就在CentOS 8服务器上安装并保护了MySQL。作为最后一步,将测试数据库是否可访问并按预期工作。

步骤3 - 测试MySQL

可以通过连接到mysqladmin工具来验证安装并获取有关它的信息,这是一个允许运行管理命令的客户端。使用以下命令以root身份连接到MySQL(-u root),提示输入密码(-p)并返回安装的版本:

mysqladmin -u root -p version

将看到类似于此的输出:

mysqladmin Ver 8.0.17 for Linux on x86_64 (Source distribution)

版权所有(c) 2000, 2019, Oracle及其/或其关联公司。保留所有权利。

Oracle是Oracle Corporation及其/或其关联公司的注册商标。其他名称可能是各自所有者的商标。

服务器版本 8.0.17

协议版本 10

连接 本地通过UNIX套接字

UNIX套接字 /var/lib/mysql/mysql.sock

正常运行时间: 2小时52分钟37秒

线程:2 问题:20 慢查询:0 打开:131

刷新表:3 打开表:48 每秒查询平均数:0.001

这表明安装成功。

如果想连接到MySQL并开始向其中添加数据,请运行以下命令:

mysql -u root -p

与前面的mysqladmin命令一样,此命令包括-u选项,允许指定想要连接的用户(在这种情况下是root),以及-p选项,告诉命令提示输入在前一步中设置的用户密码。

输入root MySQL用户密码后,将看到MySQL提示符:

mysql>

从那里,可以开始使用MySQL安装来创建和加载数据库并开始运行查询。

通过遵循本教程,已在CentOS 8服务器上安装并保护了MySQL。从这里,可以安装Nginx和PHP,在服务器上拥有一个完全运行的LEMP堆栈。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485