如何在 Ubuntu 18.04 上安装 MariaDB

介绍

MariaDB是一个开源数据库管理系统,通常用作流行LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的 MySQL 部分的替代方案它旨在成为 MySQL 的替代品。

本安装指南的简短版本包括以下三个步骤:

  • 使用更新您的包索引 apt
  • 安装mariadb-server使用包apt该软件包还引入了与 MariaDB 交互的相关工具
  • 运行包含的mysql_secure_installation安全脚本以限制对服务器的访问
  • sudo apt update
  • sudo apt install mariadb-server
  • sudo mysql_secure_installation

本教程将解释如何在 Ubuntu 18.04 服务器上安装 MariaDB,并验证它是否正在运行并具有安全的初始配置。

先决条件

要学习本教程,您需要:

第 1 步 – 安装 MariaDB

在 Ubuntu 18.04 上,MariaDB 10.1 版默认包含在 APT 包存储库中。

要安装它,请使用以下命令更新服务器上的包索引apt

  • sudo apt update

然后安装包:

  • sudo apt install mariadb-server

这些命令将安装 MariaDB,但不会提示您设置密码或进行任何其他配置更改。由于默认配置使您的 MariaDB 安装不安全,我们将使用mariadb-server包提供的脚本来限制对服务器的访问并删除未使用的帐户。

第 2 步 – 配置 MariaDB

对于新的 MariaDB 安装,下一步是运行包含的安全脚本。此脚本更改了一些不太安全的默认选项。我们将使用它来阻止远程root登录并删除未使用的数据库用户。

运行安全脚本:

  • sudo mysql_secure_installation

这将引导您完成一系列提示,您可以在其中对 MariaDB 安装的安全选项进行一些更改。第一个提示将要求您输入当前的数据库root密码。由于我们还没有设置,按ENTER表示“无”。

下一个提示询问您是否要设置数据库root密码。键入N,然后按ENTER在 Ubuntu 上,MariaDBroot帐户与自动系统维护密切相关,因此我们不应更改为该帐户配置的身份验证方法。这样做会使包更新通过删除对管理帐户的访问来破坏数据库系统。稍后,我们将介绍如果套接字身份验证不适合您的用例,如何有选择地设置额外的管理帐户以进行密码访问。

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

步骤 3 —(可选)调整用户身份验证和权限

在运行 MariaDB 10.1 的 Ubuntu 系统上,MariaDB用户unix_socket默认设置为使用插件而不是密码进行身份验证在许多情况下,这允许更高的安全性和可用性,但是当您需要允许外部程序(例如,phpMyAdmin)管理权限时,它也会使事情复杂化。

由于服务器使用root帐户执行日志轮换和启动和停止服务器等任务,因此最好不要更改root帐户的身份验证详细信息。更改/etc/mysql/debian.cnf配置文件中的凭据最初可能会起作用,但包更新可能会覆盖这些更改。包维护者建议为基于密码的访问创建一个单独的管理帐户,而不是修改root帐户。

为此,我们将创建一个新帐户admin,该帐户具有与root帐户相同的功能,但配置为进行密码验证。为此,请从终端打开 MariaDB 提示符:

  • sudo mysql

现在,我们将创建一个具有root权限和基于密码的访问权限的新用户更改用户名和密码以符合您的偏好:

  • GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

刷新权限以确保它们已保存并在当前会话中可用:

  • FLUSH PRIVILEGES;

在此之后,退出 MariaDB shell:

  • exit

最后,让我们测试一下 MariaDB 的安装。

第 4 步 – 测试 MariaDB

从默认存储库安装时,MariaDB 应该开始自动运行。要对此进行测试,请检查其状态。

  • sudo systemctl status mariadb

您将收到类似于以下内容的输出:

Output
● mariadb.service - MariaDB 10.1.44 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-03-25 16:51:16 UTC; 8min ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 22559 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 1152) CGroup: /system.slice/mariadb.service └─22559 /usr/sbin/mysqld Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: mysql Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 6/7: Checking and upgrading tables Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Processing databases Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: information_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 7/7: Running 'FLUSH PRIVILEGES' Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: OK Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22658]: Checking for insecure root accounts. Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22663]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

如果 MariaDB 未运行,您可以使用命令启动它sudo systemctl start mariadb

对于额外的检查,您可以尝试使用该mysqladmin工具连接到数据库,该工具是一个允许您运行管理命令的客户端。例如,此命令表示以root身份连接到 MariaDB并使用 Unix 套接字返回版本:

  • sudo mysqladmin version

您应该会收到类似于以下内容的输出:

Output
mysqladmin Ver 9.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.1.44-MariaDB-0ubuntu0.18.04.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 10 min 9 sec Threads: 1 Questions: 445 Slow queries: 0 Opens: 167 Flush tables: 1 Open tables: 30 Queries per second avg: 0.730

如果您为单独的管理用户配置了密码身份验证,则可以通过键入以下内容来执行相同的操作:

  • mysqladmin -u admin -p version

这意味着 MariaDB 已启动并正在运行,并且您的用户能够成功进行身份验证。

结论

在本指南中,您安装了 MariaDB 作为 SQL 服务器。在安装过程中,您还保护了服务器。或者,您还创建了一个单独的经过密码验证的管理用户。

现在您拥有一个正在运行且安全的 MariaDB 服务器,以下是您可以使用该服务器执行的后续步骤的一些示例:

您还可以将 MariaDB 合并到更大的应用程序堆栈中:

觉得文章有用?

点个广告表达一下你的爱意吧 !😁