如何在Debian 9上设置MariaDB

什么是MariaDB?

MariaDB是MySQL的直接替代品。它致力于成为寻求强大,可扩展且可靠的SQL Server的数据库专业人员的合理选择。本指南将帮助初学者在Debian 9(Stretch)上安装和配置MariaDB。

注意: 本指南中所需的步骤需要root权限。请务必root使用sudo前缀执行以下步骤。有关权限的更多信息,请参阅我们的用户和组指南。

安装MariaDB

在本节中,您将安装MariaDB并设置MariaDB root用户的密码。MariaDB维护一个shell脚本,该脚本自动设置必要的软件包存储库。

  1. 更新系统并安装依赖项: apt update && apt upgrade apt install dirmngr
  2. 添加MariaDB签名密钥: apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
  3. 下载并执行脚本: curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
  4. 更新您的来源列表: apt update
  5. 安装MariaDB: apt install mariadb-server 系统将提示您为MariaDB root用户设置密码:

安装完成后,Debian将启动MariaDB服务器,并将服务设置为在重启时自动启动。

使用MariaDB

在本节中,您将学习如何连接到MariaDB并执行基本的SQL命令。

  • 与MariaDB交互的标准工具是MySQL客户端。要开始使用,请发出以下命令以root用户身份连接到MariaDB: mysql -u root -p 出现提示时,输入安装MariaDB时设置的root密码。你会看到如下输出: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 30 Server version: 5.5.37-MariaDB-1~wheezy-log mariadb.org binary distribution Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> 请注意(none)MariaDB提示中的文本。它将用于显示当前工作数据库。由于您尚未选择任何数据库,因此显示为(none)
  • 创建一个示例数据库,以填充样本数据。使用以下命令创建名为testdb的数据库,该数据库由新用户testuser拥有。这些命令还为新用户设置密码secretpassword
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO testuser@localhost;
FLUSH PRIVILEGES;
quit

最后一行从MariaDB注销root用户。

  • testuser身份登录MariaDB : mysql -u testuser -p
  • 使用数据库testdb: USE testdb;
  • 数据库由多个组成。创建一个新表并使用示例数据填充它:
CREATE TABLE products (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price DECIMAL(6,2));
INSERT INTO products (name, price) VALUES ('MacBook Pro', 1600.0);
INSERT INTO products (name, price) VALUES ('Dell', 850.0);
INSERT INTO products (name, price) VALUES ('Acer', 775.0);
  • 验证是否已插入新数据: SELECT * FROM products; 其中应显示此输出: +----+-------------+---------+ | id | name | price | +----+-------------+---------+ | 1 | MacBook Pro | 1600.00 | | 2 | Dell | 850.00 | | 3 | Acer | 775.00 | +----+-------------+---------+ 3 rows in set (0.00 sec)
  • 输入以下命令退出MariaDB客户端: quit

有关SQL命令的更多信息,请参阅MariaDB知识库中的SQL命令页面。要从客户端查看MariaDB的命令列表,请键入:

\h

输出:

MariaDB [(none)]> \h

General information about MariaDB can be found at
http://mariadb.org

List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear the current input statement.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell command.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

For server side help, type 'help contents'

配置MariaDB

要配置MariaDB以您希望的方式运行,请编辑该/etc/mysql/my.cnf文件。此文件控制大多数服务器系统变量,您通常希望将其保留为默认设置。

无论何时进行更改/etc/mysql/my.cnf,请通过发出以下命令重新启动服务器:

service mysql restart

安全MariaDB服务器

MariaDB建议您通过执行以下命令来保护安装:

mysql_secure_installation

系统将要求您更改root密码,删除匿名用户,禁用localhost之外的root登录,并删除测试数据库。对于所有问题,建议您回答Y.

远程用户连接

本节将演示如何允许先前创建的用户testuser远程连接到MariaDB(默认情况下,MariaDB将仅允许来自localhost的连接)。

警告将MariaDB服务器打开到互联网会降低安全性。如果需要从localhost以外的其他位置进行连接,请确保实施仅允许来自特定IP地址的连接的防火墙规则。

  1. 以root身份登录MariaDB: mysql -u root -p
  2. 允许testuser从远程主机连接: GRANT ALL PRIVILEGES ON testdb.* TO testuser@'%' IDENTIFIED BY 'secretpassword'; FLUSH PRIVILEGES; quit
  3. 配置MariaDB以侦听所有网络接口。打开/etc/mysql/my.cnf文件并编辑bind-address变量以侦听所有网络接口: /etc/mysql/my.cnf1 bind-address = 0.0.0.0
  4. 重启服务器: service mysql restart
  5. 测试从本地计算机到MariaDB服务器的连接,将testuser替换为您的用户名,将example.com替换为您的域或IP地址: mysql -u testuser -h example.com -p 如果登录成功,您应该看到MariaDB欢迎消息和shell提示符。

调整MariaDB

MySQL Tuner是一个有用的工具,它连接到正在运行的MariaDB实例,并根据工作负载提供配置建议。在运行调谐器之前,您应该让MariaDB实例运行至少24小时。实例运行的时间越长,调谐器提供的建议就越好。

  1. 通过发出以下命令安装MySQL Tuner: apt install mysqltuner
  2. 使用以下命令运行MySQL调谐器: mysqltuner

重置MariaDB的Root密码

如果您忘记了root密码,请按以下步骤重置密码:

  1. 停止MariaDB服务器: systemctl restart mysql
  2. 使用该skip-grant-tables设置启动服务器,以便您可以在没有密码的情况下登录MariaDB: mysqld_safe --skip-grant-tables --skip_networking &
  3. 现在,您可以在没有密码的情况下以root身份连接到MariaDB服务器: mysql -u root
  4. 在MariaDB客户端中,发出以下命令以重置root用户的密码并注销: FLUSH PRIVILEGES; USE mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES; quit
  5. 重启MariaDB服务器: service mysql restart
  6. 使用新密码连接到MariaDB服务器: mysql -u root -p

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。

更多教程请前往腾讯云+社区学习更多知识。

参考文献:《https://www.linode.com/docs/databases/mariadb/mariadb-setup-debian/

本文的版权归 阿小庆 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沃趣科技

mysqldump与innobackupex备份过程你知多少(三)

相关阅读: mysqldump与innobackupex备份过程你知多少(二) mysqldump与innobackupex备份过程你知多少(一) mysqld...

50513
来自专栏云计算教程系列

如何在CentOS上安装MySQL

MySQL是一种流行的数据库管理系统,用于Web和服务器应用程序。本教程将介绍如何在CentOS 6上安装,配置和管理MySQL。

2507
来自专栏小特工作室

Navi.Soft31.代码生成器(含下载地址)

1系统简介 1.1功能简述 在Net软件开发过程中,大部分时间都是在编写代码,并且都是重复和冗杂的代码.比如:要实现在数据库中10个表的增删改查功能,大部分代码...

2088
来自专栏数据和云

Oracle 12.2新特性掌上手册 - 第一卷 Availability

注:文章内容来自官方文档翻译。若需要了解更多,请查阅官方文档。 1、Multi-Instance Redo Apply (多实例redo应用) 在Oracle ...

3946
来自专栏程序员的SOD蜜

将复杂查询写到SQL配置文件--SOD框架的SQL-MAP技术简介

引言 今天看到一片热门的博客, .NET高级工程师面试题之SQL篇 ,要求找出每一个系的最高分,并且按系编号,学生编号升序排列。这个查询比较复杂,也比较典型,自...

32810
来自专栏FreeBuf

绕过SQL Server的登录触发器限制

在做渗透测试任务时,我们常常会碰到一些直连SQL Server数据库的桌面应用。但偶尔也会碰到一些后端为SQL Server的应用,并且其只允许来自预定义的主机...

1101
来自专栏清风

企业Linux运维SHELL编写规范 原

为了方便维护人员维护,需要规定两个正式脚本的发布路径和维护人员的测试路径,不要将脚本放到规定路径以外,例如:

1236
来自专栏乐沙弥的世界

基于Windows 2012配置SQL Server 2014 AlwaysOn

1)使用与账户启动sqlserver(2节点) 确保2节点使用了域用户账号启动

1882
来自专栏运维技术迷

从Mysql备份中恢复单个表

因为云平台的备份是把库中所有的表都打包成一个 .sql文件,然而这一个.sql文件大约有20G,现阶段的方法是把.sql文件source到数据库数据处理机器上,...

40511
来自专栏程序员的SOD蜜

Oracle 免费的数据库--Database 快捷版 11g 安装使用与"SOD框架"对Oracle的CodeFirst支持

一、Oracle XE 数据库与连接工具安装使用 Oracle数据库历来以价格昂贵出名,当然贵有贵的道理,成为一个Oracle DBA也是令人羡慕的事情,如果程...

4777

扫码关注云+社区

领取腾讯云代金券