安装配置MariaDB数据库
Posted 网络空间安全社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装配置MariaDB数据库相关的知识,希望对你有一定的参考价值。
一、 使用 MariaDB 数据库管理系统
mysql 数据库管理系统被 Oracle 公司收购后从开源换向到了封闭,导致包括红帽在内的许多 Linux 发行版选择了 MariaDB。
今天我将教会大家使用 mariaDB 数据库管理工具来管理数据库,学习对数据表单的新建、搜索、更新、插入、删除等常用操作。
并且熟练掌握对数据库内用户的创建与授权,数据库的备份与恢复方法,满足了复赛要求。
1. 数据库管理系统
我们的生活中无时无刻都在接触到数据,而数据库便是通过指定的组织结构将这数据存储的仓库,并且随着互联网
和信息技术的发展,数据库也已经从最初只能存储简单表格发展到了存储海量数据的大型分布式模式。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理
信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手
段。
数据库管理系统(即 Database Management System)是一种能够对数据库进行建立、使用和维护的软件程序,数据库管
理系统通过将计算机中具体的物理数据转换成适合用户理解的抽象逻辑数据,方便用户维护数据库的安全和可用性。MYSQL 是一款大家都非常熟知的数据库管理系统,技术成熟、配置简单、开源免费并且有良好的扩展性,但是 MYSQL
在被Oracle公司收购后日渐陷从开源转变为了封闭,缓慢的更新让众多Linux发行版(如红帽RHEL7、Fedora、Centos、
OpenSUSE、Slackware 等等)以及诸多已经决定放弃使用这个往日最具人气的数据库管理系统,而转向到了 MariaDB。
MariaDB 是 MYSQL 数据库管理系统的一个由开源社区维护的分支产品,完全兼容于 MYSQL,坦白讲虽然 Google 与Wikipedia 这样的行业巨头已经采用了 MariaDB,但并不意味着会比 MYSQL 有明显的性能提升,而是从技术垄断角度作出的决定。
2. 初始化 mariaDB 服务程序
MariaDB 相对于 MYSQL 来讲确实在功能上有很多扩展特性,比如微秒的支持、线程池、子查询优化、组提交、进度报告等。
安装 mariaDB 服务程序:
[root@linuxprobe ~]# yum install mariadb mariadb-server
启动 mariadb 服务程序并添加到开机启动项中:
[root@linuxprobe ~] # systemctl start mariadb
[root@linuxprobe ~] # systemctl enable mariadb
为了保证数据库的安全性,一定要进行初始化工作:
第 1 步:设定 root 用户密码。
第 2 步:删除匿名帐号。
第 3 步:禁止 root 用户从远程登陆。
第 4 步:删除 test 数据库并取消对其的访问权限。
第 5 步:刷新授权表,让初始化后的设定立即生效。
初始化数据库服务程序:
[root@linuxprobe ~]# mysql_secure_installation
Enter current password for root (enter for none): #当前数据库密码为空,直接敲击回车。
Set root password? [Y/n] y y
New password: #输入要为 t root 用户设置的数据库密码。
Re-enter new password: #重复再输入一次密码。
Remove anonymous users? [Y/n] y y #(删除匿名帐号)
Disallow root login remotely? [Y/n] y #( 禁止 t root 用户从远程登陆) )
Remove test database and access to it? [Y/n] y #( 删除 t test 数据库并取消对其的访问权限) )
Reload privilege tables now? [Y/n] y #( 刷新授权表,让初始化后的设定立即生效) )
设置防火墙对数据库服务的允许策略:
[root@linuxprobe ~]# firewall-cmd --permanent --add-service=mysql
[root@linuxprobe ~]# firewall-cmd --reload
使用 root 用户登陆到数据库中:
[root@linuxprobe ~]# mysql -u root -p
Enter password: #此处输入 root 用户在数据库中的密码。
MariaDB [(none)]>
查看当前已有的数据库:
MariaDB [(none)]> show databases;
修改当前用户在数据库中的密码(示例中的密码为 redhat):
MariaDB [(none)]> set password = password('redhat');
使用旧的密码将不能再登陆到数据库:
[root@linuxprobe ~]# mysql -u root -p
3. 管理数据库与表单数据
关系型数据库(DataBase)是由一个或多个数据表单(Table)组成的,数据表单则一般会保存着多个数据记录(Record)。
(1) 创建用户并授权
创建一个新的数据库用户:
创建数据库用户的命令:CREATE USER 用户名@主机名 IDENTIFIED BY ‘ 密码 ’;
MariaDB [(none)]> create user luke@localhost IDENTIFIED BY 'linuxprobe';
进入到 mysql 数据库中:
MariaDB [(none)]> use mysql;
查看新创建的 用户、 主机、 姓名与 密码信息:
MariaDB [mysql]> select host,user,password from user where user="luke";
退出数据库后使用新用户登陆:
MariaDB [mysql]> exit
[root@linuxprobe ~]# mysql -u luke -p
Enter password: 此处输入 luke 用户的数据库密码
此时只能查看到一个数据库:
MariaDB [(none)]> show databases;
数据库 GRANT 命令的授权操作常用方案:
命令 作用
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 对某个特定数据库中的特定表单给予授权。
GRANT 权限 ON 数据库.* TO 用户名@主机名 对某个特定数据库中的所有表单给予授权。
GRANT 权限 ON . TO 用户名@主机名 对所有数据库及所有表单给予授权。
GRANT 权限 1,权限 2 ON 数据库.* TO 用户名@主机名 对某个数据库中的所有表单给予多个授权。
GRANT ALL PRIVILEGES ON . TO 用户名@主机名 对所有数据库及所有表单给予全部授权,(谨慎操作)。
切换回 root 用户登陆数据库并进入到 mysql 数据库中:
[root@linuxprobe ~]# mysql -u root -p
MariaDB [(none)]> use mysql;
给予 luke 用户对 user 表单的 查询、 更新、 删除、 插入权限:
MariaDB [mysql]> GRANT SELECT,UPDATE,DELETE,INSERT on mysql.user to luke@localhost;
查看 luke 用户当前的授权:
MariaDB [(none)]> show grants for luke@localhost;
再次切换到 luke 用户后查看可用的数据库:
[root@linuxprobe ~]# mysql -u luke -p
进入到 mysql 数据库中看到 user 表单了:
MariaDB [(none)]> use mysql
MariaDB [mysql]> show tables;
切换回 root 用户后取消刚刚全部的授权:
MariaDB [(none)]> revoke SELECT,UPDATE,DELETE,INSERT on mysql.user from luke@localhost;
再次查看 luke 用户的授权:
MariaDB [(none)]> show grants for luke@localhost;
(2) 创建数据库与表单
常用的数据库表单管理命令有:
用法 作用
CREATE database 数据库名称。 创建新的数据库。
DESCRIBE 表单名称; 描述表单。
UPDATE 表单名称 SET attribute=新值 WHERE attribute > 原始值; 更新表单中的数据。
USE 数据库名称; 指定使用的数据库。
SHOW databases; 显示当前已有的数据库。
SHOW tables; 显示当前数据库中的表单。
SELECT * FROM 表单名称; 从表单中选中某个记录值。
DELETE FROM 表单名 WHERE attribute=值; 从表单中删除某个记录值。
练习:
创建一个新的数据库:
MariaDB [(none)]> create database linuxprobe;
查看当前已有的数据库:
MariaDB [(none)]> show databases;
切换到指定的数据库:
MariaDB [(none)]> use linuxprobe;
创建新的数据库表单:
MariaDB [linuxprobe]> create table mybook (name char(15),price int,pages int);
Query OK, 0 rows affected (0.16 sec)
查看表单的结构描述:
MariaDB [linuxprobe]> describe mybook;
(3) 管理表单数据
向表单内插入新的书籍数据:
MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe','60',518);
查看表单中的数据值:
MariaDB [linuxprobe]> select * from mybook;
将价格修改为 55 元:
MariaDB [linuxprobe]> update mybook set price=55 ;
只看书籍的名字和价格:
MariaDB [linuxprobe]> select name,price from mybook;
删除书籍表单中的内容:
MariaDB [linuxprobe]> delete from mybook;
MariaDB [linuxprobe]> select * from mybook;
连续加入 4 条书籍记录值:
MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe1','50',518);
MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe2','60',520);
MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe3','40',508);
MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe4','46',543);
where 命令用于在数据库匹配查询的条件,可用的条件有:
参数 作用
= 相等。
<>或!= 不相等。
> 大于。
< 小于。
>= 大于或等于。
<= 小于或等于。
BETWEEN 在某个范围内。
LIKE 搜索一个例子。
IN 在列中搜索多个值。
查看价格大于 75 元的书籍:
MariaDB [linuxprobe]> select * from mybook where price>75;
搜索价格不等于 80 元的书籍:
MariaDB [linuxprobe]> select * from mybook where price!=80;
(4) 数据库的备份与恢复
mysqldump 命令用于备份数据库数据,格式为:“mysqldump [参数][数据库名称]”。
参数 作用
-u 数据库的用户名称。
-p 密码提示符。
--no-data 至备份数据库的描述结构,而不要数据。
--lock-all-tables 备份完成后将不再允许修改数据。
将书籍数据库文件(即 linuxprobe)导出到家目录:
[root@linuxprobe ~]# mysqldump -u root -p linuxprobe > /root/linuxprobeDB.dump
Enter password:
删除书籍数据库:
MariaDB [linuxprobe]> drop database linuxprobe;
MariaDB [(none)]> show databases;
创建一个空的数据库:
MariaDB [(none)]> create database linuxprobe;
导入刚刚备份的数据库:
[root@linuxprobe ~]# mysql -u root -p linuxprobe < /root/linuxprobeDB.dump
[root@linuxprobe ~]# mysql -u root -p linuxprobe < /root/linuxprobeDB.dump
Enter password:
果然又看到了刚刚创建的 mybook 表单:
[root@linuxprobe ~]# mysql -u root -p
MariaDB [(none)]> use linuxprobe;
MariaDB [linuxprobe]> show tables;
以上是关于安装配置MariaDB数据库的主要内容,如果未能解决你的问题,请参考以下文章
CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置