介绍
MariaDB是一个开源数据库管理系统(DBMS),通常被用来替代流行的 LAMP(Linux, Apache, MySQL, PHP/Python/Perl)堆栈的MySQL部分。它旨在替代MySQL和Debian现在只配有MariaDB包。如果你尝试安装MySQL服务器相关的包,你会收到兼容的MariaDB替代版本。
本安装指南的简短版本包括以下三个步骤:
- 使用
apt
更新您的包索引 * 使用apt
安装mariadb-server
包. 该包还引入相关工具以与 MariaDB 交互 * 运行包含的mysql_secure_installation
安全脚本以限制访问服务器
1sudo apt update
2sudo apt install mariadb-server
3sudo mysql_secure_installation
本教程将解释如何在 Debian 10 服务器上安装 MariaDB 10.3 版本,并验证它是否正在运行并具有安全的初始配置。
前提条件
要完成本教程,您将需要一个 Debian 10 服务器,安装一个具有sudo
特权和防火墙的非root 用户。
步骤 1 – 安装 MariaDB
在 Debian 10 上,MariaDB 版本 10.3 默认包含在 APT 包存库中,由 Debian MySQL/MariaDB 包装团队标记为默认 MySQL 变体。
要安装它,请用apt
更新服务器上的包索引:
1sudo apt update
然后安装包:
1sudo apt install mariadb-server
这些命令会安装MariaDB,但不会提示您设置密码或进行任何其他配置更改. 由于默认配置使MariaDB的安装不安全,您将使用mariadb-server
包提供的脚本来限制访问服务器并删除未使用的帐户。
步骤 2 – 配置 MariaDB
对于新的 MariaDB 安装,下一步是运行包含的安全脚本. 此脚本会改变一些不安全的默认选项. 我们将使用它来阻止远程 root 登录并删除未使用的数据库用户。
运行以下安全脚本:
1sudo mysql_secure_installation
这将带您通过一系列提示,您可以对 MariaDB 安装的安全选项做出一些更改。第一个提示将要求您输入当前数据库 root 密码。
下一个提示会问你是否想设置数据库 root 密码。键入N
,然后按ENTER
。在Debian中,MariaDB 的 ** root** 帐户与自动系统维护密切相关,所以你不应该为该帐户更改配置的身份验证方法。这样做将使软件包更新能够通过删除访问管理帐户来破坏数据库系统。
从那里,您可以按Y
,然后按ENTER
,以接受所有后续问题的默认值。这将删除一些匿名用户和测试数据库,禁用远程 root 登录,并加载这些新规则,以便MariaDB立即尊重您所做的更改。
步骤 3 – (可选) 调整用户身份验证和特权
在运行 MariaDB 10.3 的 Debian 系统中, root MariaDB 用户被设置为使用unix_socket
插件默认身份验证,而不是使用密码。
由于服务器使用 root 帐户进行日志旋转和开始和停止服务器等任务,所以最好不要更改 ** root** 帐户的身份验证细节。在 `/etc/mysql/debian.cnf 配置文件中更改身份验证文件可能起初起作用,但更新包可能会重写这些更改。
为了展示这一过程,我们将创建一个名为admin
的新帐户,其功能与 root 帐户相同,但配置用于密码验证。
1sudo mysql
现在,创建一个具有 root 权限和基于密码的访问权限的新用户. 更改用户名和密码以匹配您的偏好:
1GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
清除权限,以确保它们在当前会话中存储和可用:
1FLUSH PRIVILEGES;
接下来,输出 MariaDB 壳:
1exit
1[secondary_label Output]
2Bye
接下来,让我们来测试MariaDB的安装。
第4步:测试MariaDB
当从默认存储库安装时,MariaDB 应该自动启动。
1sudo systemctl status mariadb
您将收到类似于以下的输出:
1[secondary_label Output]
2● mariadb.service - MariaDB 10.3.31 database server
3 Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:
4 Active: active (running) since Mon 2022-03-14 18:33:32 UTC; 2min 2s ago
5 Docs: man:mysqld(8)
6 https://mariadb.com/kb/en/library/systemd/
7 Main PID: 3229 (mysqld)
8 Status: "Taking your SQL requests now..."
9 Tasks: 31 (limit: 4915)
10 Memory: 74.4M
11 CGroup: /system.slice/mariadb.service
12 └─3229 /usr/sbin/mysqld
13
14Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema
15Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 6/7: Checking and u
16Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Running 'mysqlcheck' with
17Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Connecting to localhost
18Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Disconnecting from loca
19Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Processing databases
20Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: information_schema
21Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema
22Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 7/7: Running 'FLUSH
23Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: OK
如果 MariaDB 未运行,则可以使用sudo systemctl start mariadb
命令启动。
为了进行额外的检查,您可以尝试使用mysqladmin
工具连接到数据库,这是一个客户端,允许您运行管理命令。
1sudo mysqladmin version
你的输出应该与以下相似:
1[secondary_label Output]
2mysqladmin Ver 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64
3Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
4
5Server version 10.3.31-MariaDB-0+deb10u1
6Protocol version 10
7Connection Localhost via UNIX socket
8UNIX socket /var/run/mysqld/mysqld.sock
9Uptime: 3 min 6 sec
10
11Threads: 6 Questions: 473 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 2.543
如果您配置了具有密码身份验证的单独管理用户,则可以通过运行以下命令执行相同的操作:
1mysqladmin -u admin -p version
1[secondary_label Output]
2Ver 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64
3Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
4
5Server version 10.3.31-MariaDB-0+deb10u1
6Protocol version 10
7Connection Localhost via UNIX socket
8UNIX socket /var/run/mysqld/mysqld.sock
9Uptime: 7 min 11 sec
10
11Threads: 6 Questions: 474 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 1.099
此输出意味着 MariaDB 已启动并运行,并且您的用户可以成功验证。
结论
在本指南中,您安装了 MariaDB 作为 SQL 服务器。在安装过程中,您还保护了服务器。
现在你有一个运行和安全的MariaDB服务器,这里有一些下列步骤的例子,你可以采取与服务器的工作:
您还可以将 MariaDB 集成到更大的应用程序堆栈中: