Skip to main content

关系型数据库服务器-MariaDB

关系型数据库服务器-MariaDB

:::note 由于MariaDB数据库是MySQL数据库的另一个分支,因此不能将MySQL和MariaDB安装在同一操作系统中,如果这样做了,会导致数据库无法正常启动。 :::

概述

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。在性能、功能、管理、NoSQL扩展方面,MariaDB包含了更丰富的特性。比如微秒的支持、线程池、子查询优化、组提交、进度报告等。

配置环境

116在root权限下执行如下命令,停止并关闭防火墙。

systemctl stop firewalld

systemctl disable firewalld

117执行如下命令,修改SELINUX为disabled。

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

118执行如下命令,创建组、用户和密码。

groupadd mysql

useradd -g mysql mysql

passwd mysql

119搭建数据盘。

(5)执行如下命令,创建分区(以“/dev/vdb”为例,请根据实际情况创建)。

fdisk /dev/vdb

输入n,按回车确认;

输入p,按回车确认;

输入1,按回车确认;

#采用默认配置,按回车确认;

输入w,按回车保存。

(6)执行如下命令,创建文件系统(以xfs为例,请根据实际情况创建)。

mkfs.xfs /dev/vdb1

(7)执行如下命令,挂载分区到“/data”以供操作系统使用。

mkdir /data

mount /dev/vdb1 /data

(8)执行如下命令,编辑“/etc/fstab”文件,在文件末尾新增如图4.26所示内容,使系统重启后自动挂载数据盘(“/dev/vdb1”为示例,具体名称以实际情况为准)。

vi /etc/fstab

#After editing this file,run 'systemctl daemon-reload' to update systemd

units generated from this file.

defaults /dev/mapper/use-root ext4 11 UUID=ff5d51ad-8d78-41ad-960a-d6 foc88961c1 /boot ext4 defaults 12 vfat UUID=329A-28D1 /boot/efi umask0077,shortname=winnt02 /dev/mapper/use-swap swap swap defaults 00 /data xfs defaults12 /dev/vdb1 [mysqlalocalhost ~]s)

120执行如下命令,创建数据库目录并且授权。

mkdir -p /data/mariadb

cd /data/mariadb

mkdir data tmp run log

chown -R mysql:mysql /data

安装过程

121以root用户执行如下命令,安装mariadb包。

dnf install mariadb-server

122执行如下命令,启动mariadb服务。

systemctl start mariadb.service

123执行如下命令,查看服务状态。

systemctl status mariadb.service

Active:active (running) since Sat 2020-05-23 04:19:54 EDT;8min ago Docs:man :mysqld(8) https://mariadb.com/kb/en/library/systemd/ Process:46165ExecStartPost/usr/libexec/mysg-check-upgrade (code=exited,status=0/SUCCESS) Process:46030 ExecStartPre=/usr/libexec/mysq -prepare -db-dir mariadb.service (code=exited, status=0/SUCCESS) Process:46006ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS) Main PID:46133 (mysqld) Status:"Taking your SQL requests now... Tasks:31 (Limit: 11337) Memory: 77.1M CGroup:/system.sice/mariadb,service 46133 /usr/libexec/mysqld --basedir=/usr May23 04:19:54 Localhost.localomain mysq-prepare-db-dir[46030]:Please report any problems at http://mariadb.org/jira May 23 04:19:54 ocalhost,localdomain mysq-prepared-ir(4603):The latest nforation about ariaB is availabe at http://mariadb.org/. May 23 04:19:54 ocahost.localdomain ysq-prepare-d-dir[46030]:You can find additional information about the MySQL part at May23 04:19:54 Localhost. localdomain mysql-prepare-db-dir[46030]:http://dev.mysql.com May2304:19:54 Locahost.Localomain ysq-prepareb-d[4603]onsderjoining MariaDBs strong and vibrant community May23 04:19:54 Localhost.localdomain mysq-prepare-db-dir[46030]:https://mariadb.org/get-involved/ May 2304:19:54 Localhost. lLocaldomain mysqld[46133]:2020-05-23 4:19:540[Note]/usr/libexec/mysgld (mysgLd 10.3.17-MariaDB)starting as process 46133... 4:19:540[Warning]Could not increase number of max open files to more than 1024 (request:4183) May23 04:19:54 Localhost. Localdomain mysqLd[46133]:2020-05-23 May2304:19:54 Localhost.localdomain mysqLd[46133]:2020-05-23 4:19:540[Warning] Changed limits: max_open_files:1024 max_connections:151 (was 151) table_c May 23 04:19:54 localhost. Localdomain systemd[1]:Started MariaDB 10.3 database server. Lines 1-25/25 (END))

功能测试

124以root用户执行如下命令,开启mariadb服务。

systemctl start mariadb

125以root用户执行如下命令,初始化数据库。

/usr/bin/mysql_secure_installation

:::note 命令执行过程中需要输入数据库的root设置的密码,若没有密码则直接按“Enter”键,然后根据提示及实际情况进行设置。 :::

126执行如下命令,登录数据库,密码为上一步骤中设置的密码。

mysql -u root -p

Type 'help;"or 'h' for help.Type'c' to clear the current input statement.)

127执行如下命令,创建用户。

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

:::note

■username:用户名。

■host:主机名,即用户连接数据库时所在的主机的名字。若是本地用户可用localhost,若在创建的过程中未指定主机名,则主机名默认为“%”,表示一组主机。

■password:用户的登录密码。密码可以为空,如果为空则该用户可以不需要密码登录服务器,但从安全的角度而言,不推荐这种做法。 :::

128执行如下命令,查看用户。

SELECT USER,HOST,PASSWORD FROM mysql.user;

USER HOST PASSWORD Localhost *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 root root LocaLhost. Localdomain *23AE809DDACAF96AFOFD78ED04B6A265E05AA257 root 127.0.0.1 *23AE809DDACAF96AFOFD78ED04B6A265E05AA257 root ::1 *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 userexample1| Localhost *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 5 rowsin set (0.000sec) MariaDB [(none)]>)

129执行如下命令,进行用户授权。

GRANT privileges ON databasename.tablename TO 'username'@'hostname';

:::note

■ON子句:用于指定权限授予的对象和级别。

■privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有的权限则使用ALL。

■databasename:数据库名。

■tablename:表名。

■TO子句:用来设定用户密码,以及指定被赋予权限的用户。

■username:用户名。

■hostname:主机名。

■如果要授予该用户对所有数据库和表的相应权限,参考如下示例。 :::

TO 'userexample1'@"localhost Query OK,0 rows affected (0.000sec) MariaDB [(none)]>)

130执行如下命令,创建数据库。

CREATE DATABASE databaseexample;

Query OK,1 row affected (0.001 sec) MariaDB [(none)}>)

131执行如下命令,查看数据库。

SHOW DATABASES;

Database databaseexample information_schema mysql performance_schema test 5 rows in set (0.000sec) MariaDB [(none)1>)

132执行exit命令,退出数据库。

Bye [rootaLocalhost Log]#)