构建数据库系统 数据库:一批数据的集合,主流的数据库多用来存放关系型表格数据 关系型数据:已二维表格记录大量实体的属性信息 DBMS,数据库管理软件
部署mariadb数据库服务器
RHEL7中的MariaDB相关包 maniadb-server:提供服务端相关的程序 端口:3306 搭建基本的数据库 1.安装软件mariadb-server [root@server0 ~]# yum -y install mariadb-server 2.开启数据库服务 [root@server0 ~]# systemctl restart mariadb [root@server0 ~]# systemctl enable mariadb 3.进入MariaDB数据库 基本操作 [root@server0 ~]# mysql MariaDB [(none)]> show databases; //查看所有的库 MariaDB [(none)]> create database nsd1802; //创建数据库 MariaDB [(none)]> drop database nsd1802; //删去数据库 MariaDB [(none)]> exit 4.设置MariaDB数据管理员的密码 数据库root管理员与系统root管理员不为同一个用户 数据库管理员root:mysql库中user表 系统管理员root:/etc/passwd musqladmin [-u 用户名} [-p 旧密码] password ‘新密码’ [root@server0 ~]# mysqladmin -u root password '123' //创建密码 [root@server0 ~]# mysql -u root -p 数据库主配置文件:/etc/my.cnf 5.导入数据库的数据 [root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql //服务器上已备份的文件路径classroom [root@server0 ~]# mysql -u root -p123 nsd1802 < users.sql //导入表格绝对路径 [root@server0 ~]# mysql -u root -p123 //-p后面直接输入密码直接登入 MariaDB [nsd1802]> show databases; //查看当前表格 MariaDB [nsd1802]> use nsd1802; //use切换数据库(数据库没有上一级 use直接切换) MariaDB [nsd1802]> show tables; //查看当前库的所有表格 MariaDB [nsd1802]> select * from base; //查看base表格内的所有内容 *代表所有内容 对于表有四个操作:增(insert)删(delete)查(select)改(update) 查看表结构:desc 表格: MariaDB [mysql]> select * from nsd1802.base; 创建新的数据表(数据库的授权,不需要创建本地用户) 有条件的查询: where or=或 and=且 GRANT 权限列表 ON 数据库名.表名 TO 用户名@客户机地址 IDENTIFIED BY ‘密码’; grant select on nsd1802.* to lisi@localhost identified by '123'; //授权并创建用户 [root@server0 ~]# mysql -u lisi -p123 [root@server0 ~]# mysql -u root -p123 //登陆root用户为lisi授权 MariaDB [(none)]> grant select on nsd1802.* to lisi@localhost identified by '123'; //授权lisi查看的权限 select 查看 localhost 本地用户 identified 创建查看密码
案例5:使用数据库查询
在系统 server0 上使用数据库 nsd1802,并使用相应的 SQL 查询以回答下列问题:1)密码是 solicitous 的人的名字? 有条件的查询: where or=或 and=且[root@server0 ~]# mysql -u root -p123MariaDB [(none)]> use nsd1802;
MariaDB [nsd1802]> select * from base;
MariaDB [nsd1802]> select * from base where password='solicitous';
MariaDB [nsd1802]> select name from base where password='solicitous';
MariaDB [nsd1802]> select * from base where name='tom';
2)有多少人的姓名是 Barbara 同时居住在 Sunnyvale? (多表联合查询) (or=或 and=且)MariaDB [nsd1802]> use nsd1802MariaDB [nsd1802]> select * from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
MariaDB [nsd1802]> select count(*) from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
MariaDB [nsd1802]> insert base values (6,'Barbara','321');MariaDB [nsd1802]> select * from base;
MariaDB [nsd1802]> insert location values (6,'Sunnyvale');MariaDB [nsd1802]> select * from location;
MariaDB [nsd1802]> select * from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
#
禁止空密码root用户访问 mariadb 数据库(user表为登陆数据库用户的信息表)
MariaDB [nsd1802]> use mysql;
MariaDB [mysql]> select user,host,password from user;
MariaDB [mysql]> select user,host,password from user where password='';
MariaDB [mysql]> delete from user where password=''; #删除表记录
MariaDB [mysql]> flush privileges; #刷新数据库策略MariaDB [mysql]> exit
[root@server0 ~]# mysql -u root -h server0.example.com #测试网络登陆