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

相关文章

来自专栏高爽的专栏

增量接口的设计及实现

引言 在应用开发过程中,我们总会碰到这样的场景:某系统需要同步我们系统的数据去做一些业务逻辑,当数据量较小的时候,可以全量的提供,但当数据量很大时,全量提供就显...

3570
来自专栏乐沙弥的世界

基于Windows 2012配置SQL Server 2014 AlwaysOn

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

1402
来自专栏数据和云

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

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

3866
来自专栏软件工程师成长笔记

centOS7安装MySQL流程介绍

1、隐藏密码 如:MySQL 连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456”(这是我乱写的地址哈)...

1762
来自专栏iMySQL的专栏

MySQL FAQ 系列 : 如何安全地关闭 MySQL 实例

本文分析了 mysqld 进程关闭的过程,以及如何安全、缓和地关闭 MySQL 实例,对这个过程不甚清楚的同学可以参考下。

2500
来自专栏运维技术迷

从Mysql备份中恢复单个表

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

38611
来自专栏数据和云

Oracle 12.2新特性掌上手册 - 第六卷 ADG的性能与诊断

编辑手记:在Oracle 12.2中,ADG有许多惊人的改进,通过ADG standby数据库的性能数据收集和诊断、快照standby数据库的应用,以及实时的数...

3797
来自专栏小特工作室

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

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

1938
来自专栏程序员的SOD蜜

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

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

4057
来自专栏吴伟祥

分布式锁的几种实现方式~ 转

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一...

2851

扫码关注云+社区