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

・13 分钟阅读

Install MariaDB Ubuntu

MariaDB数据库服务器是一个开源服务器,它是MySQL的fork和替代,现在它是当今增长最快的开源数据库服务器,多年以来,MySQL是所有Linux系统的数据库服务器的王者。

但是现在,MariaDB是所有Linux系统的数据库服务器之王,在MySQL当前的母公司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 (输入为无)的当前密码: 按回车键
  • 设置root密码[Y/n] :? Y
  • 新密码: 输入密码
  • 输入新密码: 重复密码
  • 删除匿名用户[Y/n] :? Y
  • 不允许远程登录root[Y/n] :? Y
  • 删除测试数据库并访问它? [Y/n] : Y
  • 现在重新加载权限表[Y/n] :? Y

完成后重新启动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 在这里,你可以输入配置指令来优化和增强数据库服务器性能,

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

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

sudo systemctl restart mariadb.service

MariaDB管理命令

现在我们将讨论一些有用的MariaDB管理命令,以下是一些非常基本的命令,可以帮助你开始使用MariaDB ; 这些也可以用于MySQL,因为MariaDB只是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的数据库,我们还可以向testuser授予SELECT,INSERT,DELETE权限。
要提供对所有数据库的访问,用*替换store,

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

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

从MariaDB退出的第一个类型quit
要创建单个数据库,请在终端窗口中运行以下命令,

$ sudo mysqldump store > db_backup.sql

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

$ mysqldump --databases database_one database_two > two_databases.sql

在上面的代码中,database_1是要备份的第一个数据库的名称,database_2是第二个数据库的名称。
在单个命令中创建所有数据库的转储,

$ 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",现在让我们创建一个表,用这个数据库描述在store中找到的产品,
首先选择你要使用的数据库,在我们的文章中是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;

products1

表创建命令中的每个列描述都用逗号分隔,并遵循以下约定:

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

这些是每个列定义的值:

  • Column name :描述正在分配的属性,例如,第一列称为"product_id",因为它将保存与产品的每个产品关联的惟一标识号,
  • Data Type :指定列将保存的数据的类型,可以是MySQL类型的任何数据,例如,"int"指定只接受整数值,而"varchar"用于保存字符串值,
  • Null:定义空值是否为该字段的有效值,可以是"null"或"not null",
  • Default value :设置不指定值的所有新创建记录的初始值,"default"关键字后面跟随默认值,
  • auto_increment :MySQL将在标记为此选项的列内部处理顺序编号,为每个记录提供唯一值,

因为"auto_increment"选项保证了值是惟一的,所以,我们使用"product_id"列作为主键,这是主键的一个要求。

12 )从MariaDB表中删除表

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

MariaDB [()]> DROP TABLE table_name;

使用这个命令要非常小心,因为一旦表被删除,里面的数据就无法恢复。

首先,"show tables"查看当前表命令:

MariaDB [(store)]> SHOW tables;

show-tables1

让我们删除我们的产品表:

MariaDB [(store)]> DROP TABLE products;

现在,再次检查"store"表:

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

"store"数据库中没有表,因此操作成功。

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()的特殊函数(当前日期)来填充日期列。

Asterisk (*)是一个匹配所有内容的特殊通配符,此查询将选择products表中的所有内容:

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

insert-tables

Beryl profile image