第 18 章: 使用 MariaDB 数据库管理系统
本章学习内容有: 介绍数据库以及数据库管理系统的理论知识; 介绍 MariaDB 数据库管理系统; 学习 MariaDB 的常规操作, 如账户的创建与管理, 账户权限, 新建数据库, 新建数据表, 数据的增删改查等; 学习数据库的备份与恢复操作.
一, 数据库管理系统
1, 什么是数据库管理系统?
数据库是指按照某些特定结构来存储数据资料的数据仓库. 数据库技术也从最初只能存储简单的表格数据的单一集中存储模式, 发展到了现如今存储海量数据的大型分布式模式.
数据库管理系统是一种能够对数据库中存放的数据进行建立, 修改, 删除, 查找, 维护等操作的软件程序. 它通过把计算机中具体的物理数据转换成适合用户理解的抽象逻辑数据, 有效地降低数据库管理的技术门槛, 因此即便是从事 Linux 运维工作的工程师也可以对数据库进行基本的管理操作.
2, 对比 MariaDB 和 MySQL
MySQL 数据库项目自从被 Oracle 公司收购之后, 从开源软件转变成为了 "闭源" 软件, 这导致 IT 行业中的很多企业以及厂商纷纷选择使用了数据库软件的后起之秀 - MariaDB 数据库管理系统. MariaDB 数据库管理系统也因此快速占据了市场.
RHEL 7,CentOS 7 以及最新的 Fedora 系统中, 都将 MariaDB 作为默认的数据库管理系统.
MariaDB 和 MySQL 在性能上基本保持一致, 两者的操作命令也十分相似. 从务实的角度来讲, 在掌握了 MariaDB 数据库的命令和基本操作之后, 在今后的工作中即使遇到 MySQL 数据库, 也可以快速上手.
相较于 MySQL,MariaDB 数据库管理系统有了很多新鲜的扩展特性, 例如对微秒量级的支持, 线程池, 子查询优化, 进程报告等.
二, 开始使用 MariaDB 数据库系统
1, 安装 MariaDB 程序
安装 mariadb,mariadb-server, 启动 mariadb 服务, 并将其添加到开机启动项中.
- yum install mariadb
- yum install mariadb-server
- systemctl start mariadb
- systemctl enable mariadb
2, 初始化 mariadb 服务
在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用. 为了确保数据库的安全性和正常运转, 需要先对数据库程序进行初始化操作. 这个初始化操作涉及下面 5 个步骤:
初始化 mariadb 服务的 5 个步骤
使用 mysql_secure_installation 命令完成 mariadb 服务的初始化:
mysql_secure_installation
注意: 在很多生产环境中都需要使用站库分离的技术(即网站和数据库不在同一个服务器上), 如果需要让 root 管理员远程访问数据库, 上述 mariadb 服务初始化时应该选择允许远程登录. 另外, 还需要设置防火墙, 使其放行对数据库服务程序的远程访问请求, 数据库服务程序默认会占用 3306 端口, 在防火墙策略中服务名称统一叫作 MySQL.
- filewall-cmd --permanent --add-service=MySQL
- firewall-cmd --reload
3, 登录 MariaDB 数据库
一切准备就绪. 现在我们将首次登录 MariaDB 数据库. 其中,-u 参数用来指定以 root 管理员的身份登录, 而 -p 参数用来验证该用户在数据库中的密码值.
登录 mariadb 数据库
注意: 在使用数据库命令操作 MariaDB 数据库时, 所有的数据库命令都必须以分号 (;) 结束.
4, 修改 MariaDB 数据库的登录密码
修改登录密码
三, 管理 MariaDB 数据库的用户及其权限
在生产环境中总不能一直 "死啃" 数据库的 root 管理员. 为了保障数据库系统的安全性, 以及让其他用户协同管理数据库, 我们可以在 MariaDB 数据库管理系统中为他们创建多个专用的数据库管理账户, 然后再分配合理的权限, 以满足他们的工作需求.
1, 创建数据库用户
可使用 root 管理员登录数据库管理系统, 然后按照 "CREATE USER 用户名 @主机名 IDENTIFIED BY'密码';" 的格式创建数据库管理账户.
创建数据库用户
使用 select 命令查询指定用户的字段信息:
查询用户信息
此时的数据库用户 geek, 仅仅是一个普通账户, 没有数据库的任何操作权限. 测试如下:
使用 geek 用户登录数据库
2, 为普通用户进行授权
数据库管理系统所使用的命令一般都比较复杂. grant 命令用于给数据库账户授权, 在使用 grant 命令时需要写上要赋予的权限, 数据库及表单名称, 以及对应的账户及主机信息. 该命令的常用格式如下:
grant 命令
为普通账户的授权工作是需要数据库管理员来执行的. 下面示例, 以 root 管理员来为普通用户进行授权.
1)查看 geek 用户的权限信息.
查看用户的权限列表
2)授予 geek 对 MySQL 数据库中 user 表的 "增删改查" 权限.
用户授权
3)切换至 geek 用户, 来测试它对 MySQL 数据库中 user 表的权限是否生效.
测试 geek 用户的权限
3, 如何删除指定用户的权限?
使用 revoke 命令可以移除用户授权. revoke 命令的使用方法和 grant 命令完全一致.
删除用户权限
四, 创建数据库与数据表
在 MariaDB 数据库管理系统中, 一个数据库可以存放多个数据表, 数据表单是数据库中最重要最核心的内容. 我们可以根据自己的需求自定义数据库表结构, 然后在其中合理地存放数据, 以便后期轻松地维护和修改.
1, 创建数据库和数据表时常用的命令
创建数据库
2, 创建数据库
建立数据库是管理数据的起点. 下面创建一个名为 goods 数据库.
创建数据库
3, 创建数据表
要想创建数据表单, 需要先切换到某个指定的数据库中. 然后进行表单的初始化, 即定义存储数据内容的结构. 下面我们在 goods 数据库中创建一张名为 books 的数据表.
创建数据表
五, 对数据表执行 "增删改查"
对数据库运维人员来讲, 需要做好四门功课 -- 增, 删, 改, 查.
1, 向数据表中插入一条数据
insert
2, 修改数据表中的数据
update
3, 删除数据表中的数据
delete
4, 多功能的查询语句
要想让查询结果更加精准, 就需要结合使用 select 与 where 命令了. 其中, where 命令是在数据库中进行匹配查询的条件命令. 通过设置查询条件, 就可以仅查找出符合该条件的数据. where 命令常用的查询参数如下:
where
select
select
六, 数据库的备份与恢复
数据库的备份与恢复, 比较重要, 对 Linux 运维人员来讲是必须要掌握的.
1, 数据库的备份
mysqldump 命令用于备份数据库数据, 格式为 "mysqldump [参数] [数据库名称]". 其中参数与 MySQL 命令大致相同,-u 参数用于定义登录数据库的账户名称,-p 参数代表密码提示符.
下面示例, 把 goods 数据库中的数据导出成一个文件, 并保存到 root 管理员的家目录中.
mysqldump 数据库备份操作
2, 数据库的恢复
进入 MariaDB 数据库管理系统, 彻底删除 goods 数据库.
drop 删除数据库
接下来我们开始恢复 goods 数据库: 先在创建 goods 数据库, 再使用输入重定向符把上述备份的数据库文件导入到 MySQL 命令中, 即可实现数据库的恢复.
MySQL 命令实现数据库恢复操作
再次登录数据库, 即可看到 goods 数据库, books 数据表, 以及其中的数据行了.
- MySQL -u root -p
- show databases;
- use goods;
- show tables;
- describe books;
- select * from books;
本章复习题
复习题
本章 END 2019-01-16
来源: http://www.jianshu.com/p/a48e5f5ad879