介绍
MariaDB是一个开源数据库管理系统,通常安装在MySQL的位置,作为流行的LAMP(https://andsky.com/tech/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-debian9)(Linux,Apache,MySQL,PHP/Python/Perl)堆栈的一部分。
安装的简短版本很简单:更新您的包索引,安装mariadb-server
包(指向MariaDB),然后运行包含的安全脚本。
1sudo apt update
2sudo apt install mariadb-server
3sudo mysql_secure_installation
本教程将解释如何在 Debian 9 服务器上安装 MariaDB 版本 10.1。
前提条件
要遵循本教程,您将需要:
- 一个 Debian 9 服务器是按照 此初始服务器设置指南设置的,其中包括具有
sudo
特权和防火墙的非root 用户。
步骤 1 – 安装 MariaDB
在 Debian 9 上,MariaDB 版本 10.1 默认包含在 APT 包存库中,由 Debian MySQL/MariaDB 包装团队标记为默认 MySQL 变体。
要安装它,请用apt
更新服务器上的包索引:
1sudo apt update
然后安装包:
1sudo apt install mariadb-server
这将安装MariaDB,但不会提示您设置密码或进行任何其他配置更改,因为这会使MariaDB的安装不安全,我们将进一步解决此问题。
步骤 2 – 配置 MariaDB
对于新安装,您需要运行包含的安全脚本,这会改变一些不安全的默认选项,例如远程 root 登录和样本用户。
运行安全脚本:
1sudo mysql_secure_installation
这将带您通过一系列提示,您可以对 MariaDB 安装的安全选项做出一些更改。第一个提示将要求您输入当前数据库 root 密码。
下一个提示会问你是否想设置数据库 root 密码。键入N
,然后按ENTER
。在Debian,MariaDB 的 ** root** 帐户与自动系统维护密切相关,所以我们不应该为该帐户更改配置的身份验证方法。这样做将使软件包更新能够通过删除访问管理帐户来破坏数据库系统。
从那里,您可以按Y
,然后按ENTER
,以接受所有后续问题的默认值。这将删除一些匿名用户和测试数据库,禁用远程 root 登录,并加载这些新规则,以便MariaDB立即尊重您所做的更改。
步骤 3 – (可选) 调整用户身份验证和特权
在运行 MariaDB 10.1 的 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
最后,让我们来测试MariaDB的安装。
第4步:测试MariaDB
当从默认存储库安装时,MariaDB 应该自动启动运行。
1sudo systemctl status mariadb
您将看到类似于以下的输出:
1[label Output]
2● mariadb.service - MariaDB database server
3 Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
4 Active: active (running) since Tue 2018-09-04 16:22:47 UTC; 2h 35min ago
5 Process: 15596 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSIT
6 Process: 15594 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
7 Process: 15478 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||
8 Process: 15474 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITI
9 Process: 15471 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysql
10 Main PID: 15567 (mysqld)
11 Status: "Taking your SQL requests now..."
12 Tasks: 27 (limit: 4915)
13 CGroup: /system.slice/mariadb.service
14 └─15567 /usr/sbin/mysqld
15
16Sep 04 16:22:45 deb-mysql1 systemd[1]: Starting MariaDB database server...
17Sep 04 16:22:46 deb-mysql1 mysqld[15567]: 2018-09-04 16:22:46 140183374869056 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process 15567 ...
18Sep 04 16:22:47 deb-mysql1 systemd[1]: Started MariaDB database server.
如果 MariaDB 不运行,您可以使用sudo systemctl start mariadb
开始运行。
为了进行额外的检查,您可以尝试使用mysqladmin
工具连接到数据库,这是一个客户端,允许您运行管理命令。
1sudo mysqladmin version
你应该看到类似于此的输出:
1[secondary_label Output]
2mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
3Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
4
5Server version 10.1.26-MariaDB-0+deb9u1
6Protocol version 10
7Connection Localhost via UNIX socket
8UNIX socket /var/run/mysqld/mysqld.sock
9Uptime: 2 hours 44 min 46 sec
10
11Threads: 1 Questions: 36 Slow queries: 0 Opens: 21 Flush tables: 1 Open tables: 15 Queries per second avg: 0.003
如果您配置了具有密码身份验证的单独的管理用户,则可以通过键入以下操作来执行相同的操作:
1mysqladmin -u admin -p version
这意味着MariaDB正在运行,并且您的用户可以成功验证。
结论
您现在已经在您的服务器上安装了基本的 MariaDB 设置,以下是您可以采取的下一步步骤的几个例子: