如何在Debian 9上安装MariaDB

介绍

MariaDB是一个开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分代替MySQL安装。它使用关系数据库和SQL(结构化查询语言)来管理其数据。由于许可问题,MariaDB于2009年从MySQL分支出来。

安装的简短版本很简单:更新软件包索引,安装mariadb-server软件包(指向MariaDB),然后运行包含的安全脚本。

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

本教程将介绍如何在Debian 9服务器上安装MariaDB 10.1版。

准备

要学习本教程,您需要:

第1步 - 安装MariaDB

在Debian 9上,默认情况下,MariaDB版本10.1包含在APT包存储库中。它被Debian MySQL / MariaDB打包团队标记为默认的MySQL变体。

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

sudo apt update

然后安装包:

sudo apt install mariadb-server

这将安装MariaDB,但不会提示您设置密码或进行任何其他配置更改。因为这会使您的MariaDB安装不安全,我们将在下一步解决此问题。

第2步 - 配置MariaDB

对于全新安装,您需要运行包含的安全脚本。这会更改远程root登录和示例用户等一些不太安全的默认选项。

运行安全脚本:

sudo mysql_secure_installation

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

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

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

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

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

由于服务器使用root帐户执行日志轮换以及启动和停止服务器等任务,因此最好不要更改root帐户的身份验证详细信息。更改/etc/mysql/debian.cnf中的帐户凭据最初可能有效,但程序包更新可能会覆盖这些更改。如果您需要设置基于密码的访问权限,软件包维护人员建议您创建一个单独的管理帐户,而不是修改root帐户。

为此,我们将创建一个root帐户具有相同功能的新帐户admin与,但配置为密码身份验证。为此,请从终端打开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

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

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-09-04 16:22:47 UTC; 2h 35min ago
  Process: 15596 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSIT
  Process: 15594 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
  Process: 15478 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   
  Process: 15474 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITI
  Process: 15471 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysql
 Main PID: 15567 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 27 (limit: 4915)
   CGroup: /system.slice/mariadb.service
           └─15567 /usr/sbin/mysqld
​
Sep 04 16:22:45 deb-mysql1 systemd[1]: Starting MariaDB database server...
Sep 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 ...
Sep 04 16:22:47 deb-mysql1 systemd[1]: Started MariaDB database server.

如果MariaDB没有运行,您可以用sudo systemctl start mariadb启动它。

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

sudo mysqladmin version

您应该看到与此类似的输出:

mysqladmin  Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
​
Server version      10.1.26-MariaDB-0+deb9u1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         2 hours 44 min 46 sec
​
Threads: 1  Questions: 36  Slow queries: 0  Opens: 21  Flush tables: 1  Open tables: 15  Queries per second avg: 0.003

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

mysqladmin -u admin -p version

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

结论

您现在已在服务器上安装了基本的MariaDB设置。您也可以重新定位数据目录

想要了解更多关于安装MariaDB的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How To Install MariaDB on Debian 9》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏好好学习吧

向github项目push代码后,Jenkins实现其自动构建

4、项目存在问题(证书问题未解决,https每次都要输入密码,未解决;改成http,也存在问题)

1141
来自专栏Aloys的开发之路

如何发布Maven依赖到中央仓库

平时我们都是从Maven中央仓库下载依赖,如果我们想发布我们自己写的Maven依赖到中央仓库供别人下载使用应该怎么办?这里以上传自己写的simian-maven...

3043
来自专栏Vamei实验室

Java网络01 Tomcat初次尝试

Tomcat是一套开源软件,它由Apache Software Foundation(ASF)开发,用于实现Java Servlet和JavaServer Pa...

2089
来自专栏F_Alex

SpringCloud-微服务配置统一管理SpringCloud Config(七)

2393

Go微服务,第10部分:集中式日志记录

在Go微服务博客系列的这一部分中,我们将介绍基于Logrus,Docker Gelf日志驱动程序和“作为服务的日志记录” Loggly服务的Go微服务的日志记录...

4024
来自专栏大魏分享(微信公众号:david-share)

对,俺差的是安全! | 从开发角度看应用架构18

在Gartner定义的“第三平台”盛行的年代,html5大行其道。所以http方式访问的应用很多。因此,谈到应用的安全,我们先要了解http的几种认证方式。

961
来自专栏乐沙弥的世界

Linux 主机网络接入配置

网络配置是我们在安装好操作系统之后,需要解决的第一步。现时代没有接入网络的主机已然等同于一堆废铁。在网络配置的过程中,通常我们需要配置本机IP地址,缺省网关,D...

3190
来自专栏喵了个咪的博客空间

Otter-入门篇2(Manager安装配置)

Otter-入门篇2(Manager安装配置) ? 前言 上一节已经简单介绍了Otter的基本信息,本节我们就来开准备搭建一个我们自己的Otter环境,因为一个...

39711
来自专栏博客园

WCF

  WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows通信开发平...

2663
来自专栏Debian社区

Debian 9 安装配置 Caddy Server

Caddy 是一个用 Golang 开发的高效 Web Server,相比 Nginx,它的配置和使用要简单很多,能自动开启 HTTPS、并且支持 HTTP/2...

5892

扫码关注云+社区

领取腾讯云代金券