专栏首页云计算教程系列如何在Debian 9上安装MariaDB
原创

如何在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 条评论
登录 后参与评论

相关文章

  • 如何使用CentOS 7上的Bottle Micro Framework部署Python Web应用程序

    由于其灵活性和高级功能,Python是一种优秀的Web编程语言。Web框架可以使编程Web应用程序更加简单,因为它们连接了强大的Web界面所需的许多组件。

    苏子晨
  • 如何在CentOS 7上安装Elasticsearch 1.7,Logstash 1.5和Kibana 4.1(ELK Stack)

    在本教程中,我们将介绍在CentOS 7上安装Elasticsearch ELK Stack,即Elasticsearch 1.7.3,Logstash 1.5...

    苏子晨
  • 使用GNU Screen管理持久终端会话

    GNU Screen是一种与终端会话配合使用的工具,允许用户在断开连接后恢复会话。Screen可防止会话“超时”或断开SSH连接或本地终端仿真器。单个Scree...

    苏子晨
  • 最全的CentOS MariaDB入门教程

    MariaDB是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品。MariaDB是由Sun在Sun Microsystems合并期间...

    吴凌云
  • 如何在 CentOS 8 上安装 MariaDB

    MariaDB 是一个开源的关系型数据库管理系统,向后兼容,可替代 MySQL。它是由 MySQL 的一些原开发者和很多社区成员共同开发的。

    雪梦科技
  • 如何在CentOS 7上安装MariaDB

    MariaDB是一个开源数据库管理系统,通常作为流行的LEMP(Linux,Nginx,MySQL/ MariaDB,PHP / Python /Perl)运行...

    温浪
  • Centos 使用YUM安装MariaDB

    1、在 /etc/yum.repos.d/ 下建立 MariaDB.repo,内容如下: [azureuser@mono etc]$ cd /etc/yum...

    张善友
  • 关于llvm kaleidoscope: 记一次Debug血泪之路

    简而言之,慎(bu)用(yong)全局变量!                                

    racaljk
  • Jupiter(Eclipse代码评审插件)简单总结

    1、Jupiter是开源的Eclipse代码评审插件,以XML形式存储review数据。 2、review数据需要在版本控制系统(CVS/SVN)中传递。...

    donghui
  • Struts工作机制?为什么要使用Struts?

    5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

    week

扫码关注云+社区

领取腾讯云代金券