如何在Ubuntu 18.04上安装和使用MariaDB

时间:2020-03-05 15:24:54  来源:igfitidea点击:

MariaDB数据库服务器是一个开放源代码服务器,它是MySQL的分支和直接替代品。
现在,它是当今增长最快的开源数据库服务器。
多年来,MySQL是所有Linux系统的数据库服务器之王。

现在,MariaDB是继MySQL当前的母之后的所有Linux系统的数据库服务器之王,Oracle对许可条款进行了一些更改,这激怒了开源社区中的许多人。

如今,MariaDB已成为大多数Linux发行版(如果不是全部)上的默认数据库服务器。
对于那些想在Ubuntu 18.04 LTS上测试MariaDB的人,以下步骤将带我们入门。

第1步-在Ubuntu 18.04上安装MariaDB数据库服务器

仅需一个命令行即可安装MariaDB数据库服务器,为此,请运行以下命令。
首先,运行以下命令以更新Ubuntu 18.04计算机。

sudo apt-get update

接下来,运行以下命令以安装MariaDB服务器和客户端。

sudo apt-get install mariadb-server mariadb-client

安装后,可以使用以下命令停止,重新启动,启动并使MariaDB服务始终在服务器引导时启动。

sudo systemctl stop mariadb.service
sudo systemctl restart mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

之后,运行以下命令以通过创建root用户密码并删除测试数据库来保护MariaDB服务器。

sudo mysql_secure_installation

出现提示时,请按照教程回答以下问题。

  • 输入root的当前密码(不输入密码):只需按Enter
  • 设置root密码? [是/否]:是
  • 新密码:输入密码
  • 重新输入新密码:重复密码
  • 删除匿名用户? [是/否]:是
  • 禁止远程root登录? [是/否]:是
  • 删除测试数据库并访问它? [是/否]:是
  • 现在重新加载特权表? [是/否]:是

完成后重新启动MariaDB服务器。

sudo systemctl restart mariadb.service

要验证MariaDB版本,请运行以下命令:

mysql --version
output
mysql  Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

第2步-配置MariaDB数据库服务器

现在已经安装了MariaDB服务器,默认配置文件位于'/etc/mysql/mariadb.config.d/50-server.cnf',我们可以其中输入config指令来优化和增强数据库服务器的性能。

我们要查找的大多数设置都将在此文件中。

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

在上面的文件中进行所有所需的更改,然后保存'CTRL + x',然后重新启动服务器。

sudo systemctl restart mariadb.service

MariaDB管理命令

现在,我们将讨论一些有用的MariaDB管理命令。
这些是一些非常基本的命令,可开始使用MariaDB;由于Mariadb仅是MySQL的分支版本,因此它们也可以与MySQL一起使用。

1)检查MariaDB安装版本

要检查数据库安装的当前版本,请在终端中键入以下命令:

$mysql --version

我们还可以运行下面提到的命令以获取有关版本的详细视图。

$sudo mysqladmin -u root version

2)登录MariaDB

要登录MariaDB服务器,请运行

$sudo mysql -u root -p

&然后输入密码以登录会话。

3)显示所有数据库

要显示MariaDB当前拥有的所有数据库,请运行以下命令:

MariaDB [()]> show databases;

4)创建新数据库

要在mariadb中创建新数据库,请运行以下命令:

MariaDB [()]> CREATE DATABASE store;

其中“ store”是新数据库的名称。

5)删除数据库

要删除数据库,请运行以下命令:

MariaDB [()]> DROP DATABASE store;

6)创建新用户

要为数据库创建新用户,请运行以下命令:

MariaDB [()]> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'pass123';

7)向用户授予数据库访问权限

要为单个数据库提供对“ testuser”的访问,请运行以下命令:

MariaDB [()]> GRANT ALL PRIVILEGES ON store.* to 'testuser'@'localhost';

这将为用户'testuser'提供对名为'store'的数据库的完整访问。
我们还可以将SELECT,INSERT,DELETE权限授予'testuser'。

要提供对所有数据库的访问权限,请将“ store”替换为“ *”,即

MariaDB [()]> GRANT ALL PRIVILEGES ON *.* to 'testuser'@'localhost';

8)创建数据库的备份/转储

第一个键入“ quit”退出mariadb。

要创建单个数据库,请在终端窗口中运行以下命令,

$sudo mysqldump store > db_backup.sql

要在单个命令中创建多个数据库的备份,

$mysqldump --databases database_one database_two > two_databases.sql

在上面的代码中,database_one是要备份的第一个数据库的名称,database_two是第二个要备份的数据库的名称。

要在单个命令中创建所有数据库的转储,

$sudo mysqldump --all-databases > all_databases.sql

在上面的代码中,将备份服务器上的所有数据库。

9)从转储还原数据库

要从转储中还原数据库,请运行

$sudo mysql store < db_backup.sql

在上面的代码中,“ store”是要还原的数据库的名称,“ db_backup.sql”是要还原的备份文件的名称。

如果试图从所有数据库的转储中还原单个数据库,则必须让mysql像这样:

mysql --one-database store < all_databases.sql

10)在MariaDB中更改用户密码

如果要使用密码“ newpassword”更新名为“ testuser”的用户,则可以在MariaDB中运行以下“ SET PASSWORD”语句:

$mysql -u root -p
MariaDB [()]> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD('newpassword');

然后按“ Ctrl + d”退出会话。

在下面的最终运行命令中:

$sudo systemctl restart mariadb.service

11)在MariaDB表中创建表

我们将数据库命名为“商店”,因此现在让我们使用此数据库创建一个表,该表描述在商店中找到的产品。

首先选择我们要使用的数据库,在我们的文章中是'store':

MariaDB [()]> USE store;
MariaDB [(store)]> CREATE TABLE IF NOT EXISTS products (
    product_id int(5) NOT NULL AUTO_INCREMENT,
    kind varchar(50) DEFAULT NULL,
    added_date DATE DEFAULT NULL,
    size varchar(20) DEFAULT NULL,
    origin varchar(250) DEFAULT NULL,
    PRIMARY KEY(product_id));
output
  Query OK, 0 rows affected (0.03 sec)

要查看我们已经完成了什么,请使用以下命令来打印出新表的列:

show columns in products;

结果使我们对定义列所需的字段有一些了解。
表创建命令中的每个列描述都用逗号分隔,并遵循以下约定:

Column_Name Data_Type[(size_of_data)] [NULL or NOT NULL] [DEFAULT default_value] [AUTO_INCREMENT]
product_id int(5) NOT NULL AUTO_INCREMENT

这些是每个列定义的值:

  • 列名称:描述要分配的属性。例如,第一列称为“ product_id”,因为它将保留与每个产品产品关联的唯一ID号。
  • 数据类型:指定列将保存的数据类型。可以是MySQL的任何数据类型。例如,“ int”指定仅接受整数值,而“ varchar”用于保存字符串值。
  • Null:定义null是否为该字段的有效值。可以为“ null”或者“ not null”。
  • 默认值:设置所有未指定值的新创建记录的初始值。关键字“ default”后跟该值。
  • auto_increment:MySQL将在内部处理用此选项标记的任何列的顺序编号,以便为每个记录提供唯一的值。

最后,在关闭列声明之前,需要通过键入“ PRIMARY KEY(columns_to_be_primary_keys)”指定要用作主键的列。

我们将“ product_id”列用作主键,因为“ auto_increment”选项可确保该值唯一,这是主键的要求。

12)从MariaDB表中删除表

要删除表,我们可以使用以下语法:

MariaDB [()]> DROP TABLE table_name;

使用此命令时要非常小心,因为一旦删除了表,内部的数据将无法恢复。

首先,让我们查看当前表,以便我们可以确定“显示表”命令的外观:

MariaDB [(store)]> SHOW tables;

让我们删除产品表:

MariaDB [(store)]> DROP TABLE products;

现在,再次检查“存储”表列表:

MariaDB [(store)]> SHOW tables;
output
Empty set (0.00 sec)

“存储”数据库中没有任何表,因此操作成功。

13)将数据插入MariaDB表

让我们在表中插入一条记录。
为此,我们将使用以下语法:

MariaDB [()]> INSERT INTO table_name (field1, field2, ...) VALUES (value1, value2, ...);

每个字符串值都必须放在引号中。
每个设置了“ auto_increment”的列都不需要一个值,因为数据库将为其提供下一个序号。

我们可以在商店产品表中添加一行,如下所示:

MariaDB [(store)]> INSERT INTO products (kind, added_date, size, origin)
VALUES
("T-Shirt", Now(), "max", "EGYPT");

我们使用了一个称为“ Now()”的特殊函数,该函数为date列填充了当前日期。

要查看信息,请查询表。
星号(*)是匹配所有内容的特殊通配符。
此查询选择产品表中的所有内容:

MariaDB [(store)]> SELECT * FROM products;