1.数据库介绍
2.mariadb的安装及软件基本信息
(1)安装mariadb
(2)软件基本信息
3.数据库开启及的安全初始化
(1)数据库开启
(2)数据库安全初始化
刚安装完可以不需要密码登录数据库的root用户:
但是这样会出现安全隐患,所以需要安全初始化数据库
输入密码:因为还没设置密码,所以这里直接回车
是否设置密码:选是,然后设置密码
是否移除匿名用户的访问权利:选是
是否不允许远程登录root用户:选是
是否把测试库的访问权力禁掉:选是
是否刷新数据库的特权表:选是
然后数据库就安全初始化好了
不输密码登录被拒绝登录:
只有输入密码登录才可以进入数据库中:
可以查看到端口信息,如果端口信息这样外露,则可能会通过网络攻击数据库:
编辑这个文件:
加上下图语句:
开启跳过网络功能,1意为开启
重启mariadb数据库,无法搜到它的端口信息:
4.数据库的基本管理
(1)登录
这里的-uroot指登录root用户,-p指使用密码登录:
登录成功:
(2)查看
显示库名称:
SHOW DATABASES; 显示库名称
注意:这里大小写都可以,但一般大写。后跟分号表示执行这个命令,没分号不执行命令
进入mysql库:
USE mysql; 进入mysql库
显示库中的所有表:
SHOW TABLES; 显示库中的所有表
查询所有数据:
SELECT * FROM user; 在user表中查询所有字段中的所有数据(user为mysql库中的一个表的 名称)
这里查询user表格中的所有数据
因为内容太多无法全部显示完所以看上去是乱码
查询指定字段:
SELECT Host,User,Password FROM user; 查询指定字段(字段指表格中的表头)
这里查询user表格中的Host,User,Password字段中的所有数据:
Host的意义为User和Password中的数据能在哪里使用:
按条件选择指定字段查看:
这里查询user表中所有Host等于127.0.0.1的字段为User、Password和Select_priv中的信息:
如果目前所处位置在mysql库中,则在查询mysql库中的user表中的内容时,只需写user就可以(相当于相对路径)
这里查询user表中User为root的Host字段中的信息:
(3)新建
新建一个库westos:
CREATE DATABASE westos; 新建库
新建一个表userlist:
新建表userlist,前面的westos表示是建在westos库中的,因为这里所处位置不在westos库中所以必须这么写
执行的命令后不加分号可以分行输入,一行不好写所以分行写,结构更清晰
创建名为username的字段,其字段中的数据类型为varchar且长度不得超过10个字符,not null表示不能为空,数据必须写
创建名为password的字段,其字段中的数据类型为varchar且长度不得超过50个字符,not null表示不能为空,数据必须写
查看westos库下的所有表来证明这个表已经建立了:
查看表结构:
DESC linux; 显示表结构
在表中插入数据:
一次插入单个值:
INSERT INTO linux VALUES ('user1','123'); 插入数据
INSERT表示插入 INTO westos.userlist表示插入数据到westos.userlist这个表中,VALUES表示插入的是数据的值,括号内是插入的具体数据:
查看插入的数据:
一次插入多个值:
这里要插入的是两个字段中的数据,所以括号中写入的数据为两个,且插入的数据用单引号包起来,要插入的不同行的数据的括号之间要用逗号隔开
FLUSH PRIVILEGES; 刷新数据库
如果正确插入数据完了之后能看到数据则不用刷新数据库,若看不到则需要刷新数据库后才能看到刚才插入的数据
(4)更改
注:对表格本身和表格的字段操作用ALTER TABLE,对字段中内容操作用UPDATE
I. 更改数据库的名称:
可以更改数据库的名称,但更改可能导致数据库中数据的丢失,如果硬要更改数据库名称,则需要在有关数据库的文件中进行更改:
在mariadb的数据目录/var/lib/mysql/中,可以看到westos库的数据目录
这里更改目录名称后就可以更改mariadb中的库名称了,但不推荐
II. 更改表格名
ALTER TABLE redhat RENAME linux; 把名为redheat的表格改名为linux
这里把名为userlist的表格改名为lee:
ALTER TABLE linux ADD age varchar(4) AFTER password; 在表linux中添加一个age字段,并且该字段数据类型为varchar,最大字符数为4,在挨着password字段后添加
插入新的字段age,AFTER username表示插入在username字段后一个位置紧挨着。若不加AFTER则插入在默认位置,默认位置为最后一列:
删除字段:
ALTER TABLE linux DROP age; 把在表linux中的age这个字段删掉
DROP意为丢弃,后跟想删掉的字段名称(若有多个字段重名则删除会报错)
更改表中数据内容:
将整个字段修改为同样的数据:
更改表westos中的所有age字段中的数据改为10
UPDATE linux SET sex='g' WHERE username='user2'; 把在表linux中的所有username字段值 为user2的sex字段改为g
更改username表中所有username字段为user1并且password字段为123的age字段都改为20:
(5)删除
删除字段中的数据:
DELETE from linux where username='user2' and age='18'; 删除linux表中username字段为 user2并且age字段为18的所有数据
这里删除了满足username=user3并且age=10的行的所有数据:
删除整个字段:
ALTER TABLE linux DROP age; 把在表linux中的age这个字段删掉
这里删除了password字段,其字段中的数据也被删除:
删除表:
DROP TABLE linux; 删除表linux
这里删除表username
删除库:
DROP DATABASE westos; 删除库westos
这里删除库westos,然后查看所有库,westos库已被删除:
5.数据库密码管理
(1)数据密码更改
把root用户的密码从westos改为lee:
-u后加要改密码的用户名称 -p后加原始密码
验证密码更改:
(2)数据库密码破解
数据库密码破解:
mysqld_safe --skip-grant-tables & 激活数据库时跳过它的授权表并且放后台运行
mysqld_safe 开启mysql的安全模式
先停止mariadb,然后开启mysql的安全模式并且激活数据库时跳过它的授权表,由于这个命令会占用终端,所以加一个“&”把它放后台运行。然后按回车就可以使用mysql命令登录数据库了:
然后查看mysql库中的user表中的所有数据:
当未使用过mysladmin命令更改过密码时如果要修改Password字段中的数据:
UPDATE mysql.user set Password=password('lee') WHERE User='root';
===========================================================
当使用过mysladmin命令更改过密码时如果要修改authentication_string字段中的数据:
UPDATE mysql.user set authentication_string=password('lee') WHERE User='root';
命令中的password指对设置的密码进行加密,否则lee是明文显示的
这里相当于把mysql库中的user表中的User字段为root的行中的authentication_string字段中的数据改为了westos并且加密westos这个数据,而这个westos就是修改后的密码,这条命令相当于是修改了root用户的密码为westos并且加密了这个密码:
修改完毕后若再查询mysql库中的user表:
就可以发现刚才修改过后的密码数据已经被加密了:
退出后用fg命令把在后台运行的mysqld_safe --skip-grant-tables命令调回前台后发现无法用ctrl+c结束命令,故而又将之打入后台挂起,然后用killall -9命令强制结束它,再查看进程中有没有与mysql命令有关的进程,若发现有,则用kill -9命令强行关闭掉它:
之后重启mariadb,并且已经可以用刚才修改过的密码登录了:
6.数据库用户授权

可以看到目前数据库中的用户只有root用户一个:
(1)创建数据库用户
创建一个数据库用户:
用户名:westos@localhost 若是创建的用户名@符后为localhost,则该用户只能在数据库所在的主机登录;若创建的用户名@符后为%,则该用户可以通过网络或者数据库所在的主机登录
密码:westos identified by 'westos'表示设置的westos用户密码为westos
可以登录用户westos,但是发现看不到任何信息,需要用户授权后才可以看到:
(2)给用户授权
给用户授权:
用root登录后可以给用户westos@localhost授权:
这里授权为可以让用户westos@localhost对数据库westos中所有表进行插入和选择查看的操作:
然后可以查看用户westos@localhost的授权信息:
在库westos(需要root用户提前创建westos库)中插入信息:
登录用户westos之后可以查看到westos库了,然后还可以使用这个库:
可以选择性查看字段和对应的内容:
也可以插入数据,但不能删除表,因为没有给用户westos删除的权力:
(3)收回权力
收回权力:
这里收回用户westos对westos库下的所有表的选择查看的权力:
测试:
登录用户westos后无法对westos库中的linux表进行选择查看,但是依然可以插入数据:
(4)删除用户
删除用户westos@localhost以及验证删除:
7.数据库的备份
可以在mysql命令时加-e直接对数据库进行非交互式的操作,而不是登录后进行交互式的操作:
-E和-N可以改变查看所有库的显示方式
-E 垂直打印查询的输出(行)
-N 输出结果时不要在结果中写入列名
备份全部数据库,包括数据:
备份全部数据库时不备份库中的数据,只是备份库中表的结构:
备份库westos并把库中的数据以mysql语句的方式导入文件westos.sql中,然后可以在文件中查看到备份的库中内容:
测试:
这里把westos库删除掉然后查看当前的所有库:
还原方法1:
建立库westos,然后将刚才的备份文件westos.sql中的数据导入库westos中,之后可以查看到库westos又存在了而且其中的数据也回来了:
还原方法2:
编辑这个存放数据的备份文件:
在比较靠前的位置写入下图红框中的两行语句:
保存退出编辑后输入红框中语句可以直接创建westos库然后使用westos库并且把数据导入westos库:
8.phpmyadmin的安装与使用
安装Apache并且需要配置好网络连接:
解压并解档phpmyadmin压缩包,之后把压缩包删除并把解压后的目录重命名为mysqladmin:
查看目录mysqladmin中内容:
用这个模板文件生成配置文件,这里直接把模板文件复制后重命名成配置文件:
此时搜索目前php支持的插件,发现其中并没有支持mysql数据库的插件:
但又需要用到php来让httpd执行脚本,所以搜索所有php有关的插件后搜索到了让php支持mysql的插件:
安装php和这个让php支持mysql的插件:
可以通过浏览器访问到数据库:
新建一个数据库:
可以查看到新建的库test:
新建表名字并设置字段数:
新建表(结构):
然后下拉页面选择保存:
可以查看到刚才建的表userlist: