概述
MYSQL 数据库管理系统被 Oracle 公司收购后从开源换向到了封闭,导致包括红帽在内的许多 Linux 发行版选择了 MariaDB。本文讲解对数据表单的新建、搜索、更新、插入、删除等常用操作以及数据库内用户的创建与授权,数据库的备份与恢复方法,不仅满足了 RHCE 考题要求,还能帮助您的运维工作。
MYSQL 是一款大家都非常熟知的数据库管理系统,技术成熟、配置简单、开源免费并且有良好的扩展性,但是 MYSQL在被 Oracle 公司收购后日渐陷从开源转变为了封闭,缓慢的更新让众多 Linux 发行版(如红帽 RHEL7、Fedora、Centos、OpenSUSE、Slackware 等等)以及诸多已经决定放弃使用这个往日最具人气的数据库管理系统,而转向到了 MariaDB。MariaDB 是 MYSQL 数据库管理系统的一个由开源社区维护的分支产品,完全兼容于 MYSQL,坦白讲虽然 Google 与Wikipedia 这样的行业巨头已经采用了 MariaDB,但并不意味着会比 MYSQL 有明显的性能提升,而是从技术垄断角度作出的决定。
一 部署 mariadb服务程序:
1.安装: RHEL7中的mariadb相关包:mariadb-server maraidb(安装mariadb-server的同时会自动安装上mariadb)
[root@server0 ~]# yum -y install mariadb-server
2.重启服务:
[root@server0 ~]# systemctl restart mariadb
[root@server0 ~]# systemctl enable mariadb
3.无密码登录状态:
[root@server0 ~]# mysql (进入数据库)
MariaDB [(none)]>
MariaDB [(none)]> show databases; (查看数据库目录)
MariaDB [(none)]> create database kty;(创建一个kty的库)
MariaDB [(none)]> drop database kty;(删除kty的库)
exit (退出数据库)
二: 为数据库管理员设置密码
1.数据库管理员root,用户信息存储在mysql数据库中的user表上
2.设置数据库管理员root密码(密码简单的设为123)
[root@server0 ~]# mysqladmin -u root password '123'
3.登录:
[root@server0 ~]# mysql -u root -p #(交互式)
Enter password: 123
Welcome to the MariaDB monitor. Commands end with ; or \g.
###############################################################
[root@server0 ~]# mysql -u root -p123 #(非交互式登录)
4.修改密码:
[root@server0 ~]# mysqladmin -u root -p123 password '111'
5.数据库主配置文件: /etc/my.cnf
6.确认监听状态:
[root@server0 ~]# netstat -antpu | grep :3306
7.创建一个数据库
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> create database nsd;
三 数据库恢复数据:
1.下载备份文件
[root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql
2.linux命令行,倒入数据到nsd库
[root@server0 ~]# mysql -u root -p111 nsd < users.sql
四: 进行表格操作
1.进入数据库nsd :MariaDB [(none)]> use nsd;
查看所有数据库表: MariaDB [nsd]> show tables;
+---------------+
| Tables_in_nsd |
+---------------+
| base |
| location |
查看数据库表的字段内容:MariaDB [nsd]> select * from base;
查看表的所有字段信息:MariaDB [nsd]> describe base;
查看表的几个字段信息:MariaDB [nsd]> select id,name,password from base;
在mysql库中查看nsd库中base表的字段内容:MariaDB [mysql]> select * from nsd.base;
查询base表中密码为123的字段内容:MariaDB [nsd]> select * from base where password='123';
查询base表中密码是123或者456的字段内容:MariaDB [nsd]> select * from base where password='123' or password='456';
查询base表中密码是123而且名字是tom的字段内容:MariaDB [nsd]> select * from base where password='123' and name='tom'
2.增加:
MariaDB [nsd]> insert base values (6,'Barbara',123);
MariaDB [nsd]> insert location values (6,'sunnyvale');
3.更改:
将name字段为tom的password字段内容改为111
MariaDB [nsd]> update base set password='111' where name='tom';
将id为4的name字段内容改为lily
MariaDB [nsd]> update base set name='lily' where id='4';
4.删除:
删除mysql数据库中密码(password字段)为空的用户信息
MariaDB [mysql]> delete from user where password='';
删除nsd数据库
MariaDB [nsd]> drop database nsd;
5.多条件查找并计数:
使用数据库nsd,通过SQL查询回答:姓名是Barbara居住在Sunnyvale有几个人?
MariaDB [nsd]>select * from base,location where base.name='Barbara'
and location.city='Sunnyvale' and base.id=location.id;
五 数据库授权:
1.创建数据库用户的命令:CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码’;
MariaDB [(none)]> create user lisi@localhost identified by '111';
2.授权:
MariaDB [(none)]> grant select on nsd.* to lisi@localhost identified by '111';(lisi 用户对数据库nsd中的所有表具有查询权限)
3.数据库 GRANT 命令的授权操作常用方案:
命令 作用
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 对某个特定数据库中的特定表单给予授权。
GRANT 权限 ON 数据库.* TO 用户名@主机名 对某个特定数据库中的所有表单给予授权。
GRANT 权限 ON *.* TO 用户名@主机名 对所有数据库及所有表单给予授权。
GRANT 权限 1,权限 2 ON 数据库.* TO 用户名@主机名 对某个数据库中的所有表单给予多个授权。
GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名 对所有数据库及所有表单给予全部授权,(谨慎操作)