总有人间一两风,填我十万八千梦

Linux中安装MariaDB

软件技巧 Zero、J 636℃ 0评论

介绍

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

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

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

本教程将以Ubuntu 18.04服务器上安装MariaDB为例,并验证其是否正在运行并具有安全的初始配置。

安装MariaDB

在Ubuntu 18.04上,默认情况下APT软件包存储库中包含MariaDB 10.1版。要安装它,请使用以下命令更新服务器上的软件包apt

sudo apt update

然后安装软件包:

sudo apt install mariadb-server

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

配置MariaDB

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

sudo mysql_secure_installation

这将引导您完成一系列提示,您可以在其中更改MariaDB安装的安全性选项。第一个提示将要求您输入当前的数据库root密码。由于尚未设置,请按ENTER指示“无”。

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

调整用户身份验证和特权(可选)

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

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

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

sudo mysql

现在,我们将创建一个具有root用户特权和基于密码的访问权限的新用户。更改用户名和密码以匹配您的首选项:

MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

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

MariaDB [(none)]> FLUSH PRIVILEGES;

之后,退出MariaDB shell:

MariaDB [(none)]> exit

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

测试MariaDB

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

sudo systemctl status mariadb

输出如下:

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没有运行(不是running),则可以使用命令启动它sudo systemctl start mariadb

要进行其他检查,可以尝试使用mysqladmin工具连接到数据库,该工具是允许您运行管理命令的客户端。例如,此命令要以root用户身份连接到MariaDB :

 sudo mysqladmin version 

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

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

转载请注明:悠然品鉴 » Linux中安装MariaDB

喜欢 (0)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址