Part3.4——Mysql数据库的基本管理

目录

一、数据库的介绍

1、什么时数据库?

2、数据库中的常用名词

二、mariadb的安装

三、软件基本信息

四、数据库开启

五、数据库的安全初始化

1、关闭数据库开放端口

2、执行安全初始化命令

六、 数据库的基本管理——增删查改

1、数据库的基本结构——库,表,列

2、查看

3、新建

4、更改

5、删除

七、数据密码管理

1、数据库密码更改

2、数据库密码破解

第一步:关闭mariadb服务

第二步:进入的安全模式更改密码

第三步:更新数据库

第四步:关闭mysql所有进程

第五步:开启mariadb服务

八、用户授权

第一步:进入mysql数据库

第二步:创建特定用户(在mysql下执行)

 第三步:对特定用户授权(在mysql下执行)

第四步:查看授权状态(在mysql下执行)

第五步:测试——本地用户和远程用户

第六步:回收授权

 第七步:删除特定用户

九、数据库的备份

1、备份

2、恢复

方法一:

方法二:

十、phpmyadmin的安装

1、什么是phpmyadmin?

2、安装所需插件(httpd、php、php-mysqlnd)并启动服务

3、关闭火墙

4、设置phpmyadmin软件包

十一、本章总结


一、数据库的介绍

注意:本章所用到的<mysql>和<mariadb>是一种东西,只是叫法不一样。

1、什么时数据库?

答:数据库就是一个高级的表格软件

2、数据库中的常用名词

字段表格中的表头
表格
存放表格的目录
查询对表格中的指定内容进行查看

二、mariadb的安装

dnf install mariadb-server.x86_64 -y        #安装mariadb数据库

三、软件基本信息

mariadb.service启动服务
3306默认端口号
/etc/my.cnf.d/mariadb-server.cnf主配置文件
/var/lib/mysql数据目录,当重新安装mariadb时需要清理此目录或备份

四、数据库开启

systemctl enable --now mariadb        #开机自启动mariadb服务

五、数据库的安全初始化

1、关闭数据库开放端口

数据库默认开启了一个3306的端口,有安全隐患,所以应该先关闭此端口。

第一步:查看mysql服务的默认端口

第二步:关闭3306端口

进入mysql数据库的主配置文件,在第21行添加一个<skip-networking=1>,意思就是跳过网络访问。

vim /etc/my.cnf.d/mariadb-server.cnf            #编辑mysql的配置文件

第三步:重启mariadb服务后再次查看

使用<netstat  -antlupe | grep mysql>命令再次查看服务的端口信息,端口已经关闭,查不到了。

2、执行安全初始化命令

数据库默认没有密码,这对数据库造成很大的安全隐患,所以要对mysql数据库进行安全初始化,设置一个密码以增加安全性,

mysql_secure_installation        #mysql安全初始化命令

 3、测试

mysql -u root -p            # -u 指定登陆用户 -p 密码

安全初始化完成后,无法通过之前的直接输入“mysql”命令进入数据库了,必须得指定用户然后输入密码才可以。

六、 数据库的基本管理——增删查改

1、数据库的基本结构——库,表,列

2、查看

show databases;                    #显示库名称
use mysql;                        #进入mysql库
show tables;                        #显示库中的所有表
select * from user;                #查询user表中的所有数据
select host,user from user;        #查询指定字段(host,user字段)
select host from mysql.user where user='root'       
                                 #查询指定表(绝对路径)中的root下的host字段

 查看库、进入库、查看表,结果如下图:

查询指定字段、按绝对路径查询指定字段、查询所有字段,结果如下图:

3、新建

create database zzh;           #新建库
create table linux (           #新建表(数据库中步是以分号结尾的都可以换行)
username varchar(6) not null,
password varchar(30) not null
);

desc linux                       #显示表结构
insert into linux values ('user1','123'),('user1','123')    #插入数据
flush privileges;                #刷新数据库

 新建库、新建表、查看表结构

插入数据、刷新数据库

4、更改

alter table linux rename redhat;            #更改表名linux为redhat
            原表名        新表名
alter table redhat add age varchar(4);        #添加列(默认添加到表的最后)
alter table redhat add age varchar(4) after password;      
                                            #添加列(指定位置添加到password列的后边)
alter table redhat drop password;            #删除列
update redhat set age='18';                    #更改表中age字段的值为18
update redhat set age='18' where username='user2';
                                              #更改表中age字段指定位置的值为18

 更改表名、增加列

 删除列

 更改表中元素:如果不加限制条件的话,会导致把age字段对应的所有数据全部改变;

加上限制条件后,会只改变对应位置的元素;

5、删除

delete from redhat where username='user1' and age='18';
                                      #删除中user1和age=18所对应的列
drop table redhat;                    #删除表
drop database zzh;                    #删除库

删除列

删除表、删除库

七、数据密码管理

1、数据库密码更改

mysqladmin -uroot -pwestos passwd lee        #更改数据库密码
                    原密码        新密码

更改密码效果如下图所示:

2、数据库密码破解

注意:破解的密码不能用明文,否则会导致密码破解失败

第一步:关闭mariadb服务

systemctl stop mariadb            #关闭数据库服务

第二步:进入<mysql>的安全模式更改密码

mysqld_safe --skip-grant-tables &        #启动mysql安全模式
#未使用过mysqladmin更改过密码
update mysql.user set password=password('zzh') where user='root';
#使用过mysqladmin更改过密码
update mysql.user set authentication_string=password('zzh') where user='root';

启动mysql的安全模式后,就可以直接进入mysql而不用输入密码了

第三步:更新数据库

flush privileges;            #更新数据库

第四步:关闭mysql所有进程

ps aux | grep mysql;            #查询所有进程并过滤出mysql进程
kill -9 mysql的进程号            #强制关闭mysql进程

第五步:开启mariadb服务

systemctl start mariadb            #开启数据库服务

修改密码完成后,可以看到已经不能直接通过无密码登录了,只能通过修改后的密码登录数据库。

八、用户授权

第一步:进入mysql数据库

mysql -uroot -pzzh            #进入mysql数据库

第二步:创建特定用户(在mysql下执行)

select user,host from mysql.user;                    #查看可用用户信息
create user lee@localhost identified by 'lee';        #创建lee用户且只能用localhost登录
create user zzh@'%' identified by 'lee';              #创建zzh用户且本地或远程都可登录
           用户形式                密码

 在mysql下创建本地用户lee和远程用户zzh,创建完成后可以查看表中的用户数据新增了这两个。

 第三步:对特定用户授权(在mysql下执行)

grant insert,select,drop on mysql.* to lee@localhost        #对本地用户授予权限
grant insert on mysql.* to lee@localhost                    #对远程用户授予权限

 默认情况下,这些特定用户没有任何权限,所以进入mysql后查不到任何东西。

 在root用户下对这些特定用户授权后,特定用户才可以看到。

对用户追加授权的话重新执行上述命令即可

第四步:查看授权状态(在mysql下执行)

show grants for lee@localhost;            #查看授权

第五步:测试——本地用户和远程用户

注意:由于在前边实验中关闭了远程用户访问的端口,所以这里需要在配置文件中更改回去,允许远程用户通过网络端口访问数据库。完成后重启mariadb服务。

使用本地用户登录:登录数据库后可以看到被授权‘‘查看、新增、删除‘‘的mysql数据库。

 用远程用户登录:因为没有被授权任何数据库,所以看不到任何东西。

第六步:回收授权

revoke select on westos.* from lee@localhost;    #取消本地用户的insert权限

 对本地用户lee取消对数据库“mysql”的select授权后,再次查看授权,已经没有select权限了。

 第七步:删除特定用户

drop user lee@localhost:            #删除本地用户

 执行删除本地用户lee命令后,再次查看用户信息,已经没有用户lee了。

九、数据库的备份

1、备份

mysqldump -u root -pwestos --all-database                #备份所有数据
mysqldump -u root -pwestos --all-database > /mnt/all.sql   #备份所有数据并保存到指定文件
mysqldump -u root -pwestos --all-database --no-data       #备份所有库结构但不保存数据

mysqldump -u root -pwestos linux                    #只备份linux库的内容
mysqldump -u root -pwestos linux > /mnt/linux.sql   #只备份linux库的内容并保存在指定文件

 使用<mysqldump>命令可以备份数据并保存到指定位置。

2、恢复

方法一:

先在mysql数据库中建立要恢复的库,再从备份文件中导入该库的备份

mysql -u root -pzzh -e "create database westos;"      #先创建库
mysql -u root -pzzh westos < /mnt/westos.sql            #从备份中恢复指定库

直接从备份中恢复指定库的时候,必须保证mysql数据库中有要恢复的库名,否则无法恢复;因此需要先在数据库中创建相应的库名,然后再从备份中恢复。

方法二:

在备份文件中添加两行后,可以直接定向导入

vim /mnt/westos.sql            #编辑数据库备份文件

 在备份文件的第21加入<create database westos;>,第22行加入<use westos;>,保存后退出。

mysql -u root -pzzh < /mnt/westos.sql            #从备份中恢复备份的库

测试结果如下:

十、phpmyadmin的安装

注意:本实验所用到的phpmyadmin网页编辑器由于版本不匹配的问题,此软件从老师的服务器中直接拿到相匹配的版本。

1、什么是phpmyadmin?

答:phpmyadmin是一种基于web的网页管理mysql数据库的软件,相比于shell命令行,web界面操作可以更方便和直观地管理数据。

2、安装所需插件(httpd、php、php-mysqlnd)并启动服务

dnf install httpd php php-mysqlnd -y     #安装这三个服务
systemctl enable --now httpd             #启动httpd服务

3、关闭火墙

systemctl disable --now firewalld.service        #关闭火墙

4、设置phpmyadmin软件包

第一步:下载并解压软件包

由于需要在web页面访问,所以把这个软件包放在</var/www/html>目录下,以通过浏览器访问

 解压后为了方便查看,将其解压后的目录改个简单的名字<mysql_tool>。

第二步:进入<mysql_tool>目录下更改配置文件

先查看帮助文件<vim README>

 再查看说明<vim Documentation.txt>

然后按照帮助说明中的内容执行操作:

最后把上一步中得到的这串字符复制到配置文件下。

第三步:重启httpd服务

第四步:测试

在任何一台名通过http访问此数据库的客户机的浏览器里,都可以对数据库进行操作。

输入数据库的用户名和密码后登录效果如下所示:

十一、本章总结

1、破解的密码不能用明文,否则会导致密码破解失败

2、两种恢复数据库备份的方式中,第一种需要先创建相应的库名,才能往该库里导入备份数据;第二种不需要创建库名,但需要在备份文件中加入两条命令。区别是导入时第一种方法需要指定库名,第二种方法不用指定库名(指定库名后会报错)。

下图为第二种方法需要避免的坑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值