如何在Ubuntu20.04上安装最新的MySQL
介绍
MySQL 是一个著名的开源关系数据库管理系统 (RDBMS),用于为各种流行的应用程序创建、存储和检索数据。 MySQL 是 LAMP 堆栈中的 M,这是一组常用的开源软件,还包括 Linux、Apache Web 服务器和 PHP 编程语言。
当 MySQL 发布新功能时,您可能需要安装比 Linux 分销商提供的版本更新的版本。 出于这个原因,MySQL 开发人员共享他们自己的软件存储库以安装最新版本。
在本教程中,您将安装最新版本的 MySQL。 在此之前,您需要添加 MySQL 软件存储库。 然后,您将安装 MySQL 软件本身,保护安装,并验证 MySQL 是否正在运行并响应命令。
先决条件
在开始本教程之前,您需要:
- 如 this Ubuntu 20.04 server setup tutorial 中所述,具有非 root 用户、启用 sudo 的用户和防火墙的 Ubuntu 20.04 服务器。
第 1 步 — 添加 MySQL 软件存储库
MySQL 开发人员提供了一个 .deb
软件包,用于配置和安装官方 MySQL 软件存储库。 设置存储库后,您将运行 Ubuntu 的标准 apt
命令来安装软件。 为此,您将使用 curl
下载 .deb
文件,然后使用 dpkg
命令安装它。
首先,在您的网络浏览器中加载 MySQL 下载页面 。 找到右上角的【X9X】下载【X21X】按钮,点击进入下一页。 此页面将提示您登录或注册 Oracle Web 帐户。 忽略此并找到显示 不,谢谢,开始我的下载 的链接。 右键单击链接并选择复制链接地址(此选项的措辞可能不同,具体取决于您的浏览器)。
接下来,您将下载该文件。 在您的服务器上,移动到您可以写入的目录:
cd /tmp
使用 curl
下载文件并将突出显示的 URL 替换为您从 MySQL 下载页面复制的地址:
curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb
该命令使用两个带有 curl
的标志。 -O
指示 curl
输出到文件而不是标准输出。 L
标志使 curl
遵循 HTTP 重定向,因为您复制的地址实际上在文件下载之前重定向到另一个位置。
该文件现在已下载到您的当前目录中。 列出文件以确保:
ls
您将看到列出的文件名:
Outputmysql-apt-config_0.8.18-1_all.deb . . .
现在您可以使用 dpkg
开始安装:
sudo dpkg -i mysql-apt-config*
dpkg
用于安装、删除和检查 .deb
软件包。 -i
标志请求从指定文件安装。
在安装过程中,系统会提示您一个配置屏幕,您可以在其中选择您喜欢的 MySQL 版本,以及为其他 MySQL 相关工具安装存储库的选项。
由于您只想安装最新版本的 MySQL,您可以从菜单选项中选择 Ok
,然后按 ENTER
。 您需要的存储库信息已包含在默认值中。
该包将完成添加存储库。 然后您可以刷新您的 apt
软件包缓存以使新软件包可用:
sudo apt update
通过使用 rm
命令删除文件下载来整理所有内容:
rm mysql-apt-config*
现在 MySQL 存储库已添加,您已准备好安装实际的 MySQL 服务器软件。 您可以通过运行 sudo dpkg-reconfigure mysql-apt-config
,选择新选项,然后 sudo apt update
来更新这些存储库的配置以刷新您的包缓存。
第 2 步 — 安装 MySQL
添加新存储库并更新包缓存后,您将使用 apt
安装最新的 MySQL 服务器包:
sudo apt install mysql-server
apt
识别所有可用的 mysql-server
包并确认 MySQL 包是最新版本。 然后,它将计算包依赖关系并提示您批准安装。 键入 y
然后 ENTER
继续安装。
在安装的配置阶段,您将被要求创建一个 root 密码。 请务必选择安全密码。 输入两次密码并点击 ENTER
后,将要求您配置身份验证插件。 推荐使用默认的使用强密码加密,所以按ENTER
选择它。 安装过程将一直持续到完成。
MySQL 现在已安装并正在运行。 您可以使用 systemctl
检查:
systemctl status mysql
Output● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: > Active: active (running) since Thu 2021-08-05 22:11:42 UTC; 1min 23s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 5268 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (cod> Main PID: 5322 (mysqld) Status: "Server is operational" Tasks: 37 (limit: 9513) Memory: 353.3M CGroup: /system.slice/mysql.service └─5322 /usr/sbin/mysqld
如果您看到 Active: active (running)
,则 MySQL 已安装并正在运行。 接下来,您将保护您的安装。
第 3 步 — 保护 MySQL
MySQL 带有一个命令,我们可以使用它来在我们的新安装中执行一些与安全相关的更新。 运行以下命令:
mysql_secure_installation
此命令将调出之前的配置屏幕,并询问您在安装时创建的 MySQL root 密码凭据。 输入并按 ENTER
。 然后,您将回答一系列是或否的提示。 这就是他们会问的:
- 首先,系统会询问您是否要启用 验证密码插件 ,该插件可以自动为您的 MySQL 用户强制执行某些密码强度规则。 启用此功能是您需要根据您的个人安全需求做出的决定。 键入
y
和ENTER
启用它,或按ENTER
跳过它。 如果启用,系统还会提示您从 0 到 2 中选择一个级别,以了解密码验证的严格程度。 选择一个数字并点击ENTER
继续。 - 其次,系统会询问您是否要更改 root 密码。 由于您在安装期间创建了密码,因此您可以安全地跳过此步骤。 点击
ENTER
继续而不更新密码。 - 最后,其他提示可以回答是。 系统将询问您删除 anonymous MySQL 用户、禁止远程 root 登录、删除 test 数据库以及重新加载权限表以确保之前的更改生效适当地。 键入
y
并为每个点击ENTER
。
回答完所有提示后,配置屏幕将消失。 这表明您的 MySQL 安装是相当安全的。 您可以通过运行连接到服务器并返回一些信息的客户端来确认。
第 4 步 - 测试 MySQL
mysqladmin
是 MySQL 的命令行管理客户端。 您将使用它连接到服务器并输出一些版本和状态信息:
mysqladmin -u root -p version
该命令的 -u root
部分告诉 mysqladmin
以 MySQL root 用户身份登录,-p
指示客户端要求输入密码,并且 [ X155X] 是我们要运行的实际命令。
输出将让我们知道正在运行的 MySQL 服务器的版本、正常运行时间和其他一些状态信息:
Outputmysqladmin Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 8.0.26 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 31 min 1 sec Threads: 2 Questions: 12 Slow queries: 0 Opens: 130 Flush tables: 3 Open tables: 49 Queries per second avg: 0.006
此输出表明您已成功安装并保护了最新的 MySQL 服务器。
结论
您现在已经完成了最新版本 MySQL 的基本安装,它将适用于许多流行的应用程序。 如果您有更高级的需求,您可以应用一些其他配置任务:
- 如果您更喜欢图形界面来管理您的 MySQL 服务器,phpMyAdmin 是一种流行的基于 Web 的解决方案。 我们的教程 如何安装和保护 phpMyAdmin 可以帮助您入门。
- 如果你想创建一个新的 MySQL 用户,你可以按照我们的教程 如何在 MySQL 中创建一个新用户并授予权限
- 如果您想在 MySQL 中创建数据副本,请查看我们的教程 如何在 MySQL 中设置复制