如何在Ubuntu 18.04,Ubuntu 20.04上安装MariaDB 10.4

本教程将向您展示如何在Ubuntu 18.04和Ubuntu 20.04服务器上安装MariaDB 10.4。 MariaDB是从MySQL派生的成熟,稳定,开源的关系数据库。 大多数Linux发行版已将MySQL替换为MariaDB作为默认数据库服务器。 MariaDB支持包括Google,Wikipedia,腾讯,Verizon,德意志银行,华泰证券等公司和组织的应用程序。

在撰写本文时,最新的稳定版本是MariaDB 10.4.8,已于2019年9月11日发布。值得注意的更改包括:

  • unix_socket身份验证插件现在在类似Unix的平台上是默认的。
  • mysql.user 表已退休。 用户帐户和全局特权现在存储在 mysql.global_priv 表。
  • 过时的 mysql.host 表已不再创建。
  • Galera已从Galera 3升级到Galera 4。
  • 和更多。

每个MariaDB的主要发行版将至少保留5年。 在2024年6月之前,将支持MariaDB 10.4。

从官方存储库在Ubuntu 18.04、20.04上安装MariaDB 10.4

默认的Ubuntu存储库包含MariaDB软件包,但是版本已过时。 Ubuntu 18.04仅包含MariaDB 10.1,而Ubuntu 20.04仅包含MariaDB 10.3。 我们可以从官方MariaDB存储库中安装最新版本。

访问https://downloads.mariadb.org/mariadb/repositories,然后选择您要使用的Linux发行版,发行版,版本和存储库镜像。 例如,我选择了Ubuntu 18.04,MariaDB 10.4和Limestone Networks镜像,如以下屏幕截图所示。

做出所有选择后,自定义说明将显示在页面底部。 例如,我需要运行以下命令以在Ubuntu 18.04上添加存储库。

sudo apt-get install software-properties-common

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.4/ubuntu bionic main'

要在Ubuntu 20.04上添加存储库,只需替换 bionicfocal 在第三个命令中。

然后更新软件包索引并安装MariaDB服务器。

sudo apt update

sudo apt install mariadb-server

galera-4 软件包将与MariaDB服务器一起自动安装。 安装完成后,MariaDB服务器将自动启动。 您可以通过以下方式查看其状态:

systemctl status mysql

要么

systemctl status mariadb

如您所见,它处于活动状态并正在运行。

mariadb飞行状态

提示:如果上述命令没有立即退出,请按Q键以恢复对终端的控制。

如果它没有运行,则可以使用以下命令手动启动它:

sudo systemctl start mariadb

要在启动时启用自动启动,请运行

sudo systemctl enable mariadb

要登录MariaDB监视器,请运行

sudo mysql -u root

要么

sudo mariadb -u root

如果要求输入密码,则需要输入用户的sudo密码的密码,而不是MariaDB根用户密码。

mariadb 10.4 unix_socket插件

我们可以看到从mariadb.org二进制发行版安装的服务器版本是10.4.8。 要注销,请运行

exit;

运行安装后脚本

要尽可能保护MariaDB服务器的安全,请运行安装后脚本。

sudo mysql_secure_installation

MariaDB 10.04使用unix_socket身份验证插件,因此MariaDB根用户不需要密码。 当脚本要求您输入root的密码时,只需按Enter。 对接下来的两个问题回答“ n”。

mariadb 10.4 Ubuntu 18.04

然后,您可以按Enter键回答所有剩余的问题,这将删除匿名用户,禁用远程root登录并删除测试数据库。 此步骤是MariaDB数据库安全性的基本要求。 (请注意,Y是大写的,这意味着它是默认答案。)

mariadb Ubuntu的10.10

InnoDB与XtraDB存储引擎

默认情况下,在MariaDB 10.1之前,MariaDB使用XtraDB存储引擎,这是MySQL InnoDB存储引擎的性能增强分支。 但是,随着时间的流逝,MySQL几乎实现了所有改进。 InnoDB已经赶上了,因此从MariaDB 10.2开始,InnoDB是默认引擎。

要检查哪个是默认存储引擎,请登录MariaDB监视器并运行以下命令。

show engines;

在MariaDB 10.1上,以上命令返回以下结果,表明XtraDB是默认引擎。

XtraDB存储引擎

在MariaDB 10.2、10.3和10.4上,上述命令返回以下结果,表明InnoDB是默认引擎。

InnoDB存储引擎

故障排除

注意:此故障排除技巧不再适用于MariaDB 10.4,该数据库现在默认使用unix_socket身份验证插件。 但是,如果您仍在使用MariaDB 10.3,则可能会发现它很有用。

如果以前从默认的Ubuntu存储库安装了MariaDB,现在又从mariadb.org安装了最新的MariaDB,则尝试登录时可能会遇到以下错误。

ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

这是因为MariaDB.org二进制文件仍然使用 mysql_native_password 插件来验证用户登录,而来自Ubuntu存储库的MariaDB二进制文件使用 unix_socket 用于验证用户登录信息的插件。 前者要求用户输入密码,而后者则允许用户运行以下命令登录,而不必提供MariaDB根密码。

sudo mysql -u root

最初,MariaDB根用户设置为使用 unix_socket 登录,因为它是从Ubuntu存储库安装的,但是现在您从mariadb.org安装了一个新的二进制文件,这将禁用 unix_socket 插件,因此您将看到上述错误。

如果您想继续使用 unix_socket 方法,然后编辑 50-server.cnf 文件。

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

将以下行添加到 [mariadb] 底部的单位。

plugin_load_add = auth_socket

保存并关闭文件。 然后重新启动MariaDB服务器,以使更改生效。

sudo systemctl restart mariadb

如果您喜欢使用 mysql_native_password 方法,请参阅以下文章。

  • 如何修复MariaDB插件’unix_socket’未加载错误

还有两个其他差异值得一提。

  1. Ubuntu存储库中的MariaDB软件包使用 /etc/mysql/mariadb.conf.d/50-server.conf 文件用于服务器配置,而MariaDB.org存储库中的MariaDB软件包使用 /etc/mysql/my.cnf 全新安装中用于服务器配置的文件。
  2. mariadb.org存储库中的MariaDB软件包将创建一个 debian-sys-maint 用户,而来自Ubuntu存储库的MariaDB软件包不会创建该用户。 该用户的密码存储在 /etc/mysql/debian.cnf 文件。

如果您在运行时看到以下错误 sudo systemctl status mariadb 命令。

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

您可能需要重新配置 mariadb-server-10.3 使用以下命令打包。

sudo dpkg-reconfigure mariadb-server-10.3

当重新配置向导要求您输入新的root密码时,只需按Tab键并按Enter,这样就不会更改root密码。

结论

而已。 我希望本文能帮助您在Ubuntu 18.04和Ubuntu 18.04上安装最新版本的MariaDB。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar