![网络攻防实战研究:MySQL数据库安全](https://wfqqreader-1252317822.image.myqcloud.com/cover/600/34171600/b_34171600.jpg)
1.3 MySQL基础
本书虽然是研究和讨论MySQL安全的,但为了照顾一些没有MySQL基础的读者,在本节中特意将MySQL的一些基础知识和理论知识进行了整理。
1.3.1 MySQL连接
MySQL数据库安装完成后,需要进行连接才能使用。连接可以在DOS命令提示符下进行,也可以通过一些客户端工具进行。客户端工具软件主要有 SQL-Front、Navicat for MySQL、MySQL Workbench等。
1.在DOS下进行连接
单击“开始”→“MySQL”→“MySQL Server 5.7”→“MySQL 5.7 Command Line Client-Unicode”选项,或者选择“MySQL 5.7 Command Line Client”选项,即可打开MySQL命令连接提示窗口。输入root账户的密码,验证通过后,如图1-26所示,将出现MySQL操作提示符窗口。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_34_1.jpg?sign=1739373825-Vbjehi0zhpS79TuhjPDHEtVRAJk4giUZ-0-aac60e7dc980c9f445c50c0d7516d2ba)
图1-26 MySQL命令连接窗口
也可以在C:\Program Files\MySQL\MySQL Server 5.7\bin目录下新建一个cmd.bat批处理文件,在其中输入“cmd.exe”,保存并运行,然后执行如下命令进行登录。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_34_2.jpg?sign=1739373825-D5CQtGgu9VEFxEMT3vMv1uR2E59zeyBH-0-9c3bea00888b8b8a09ca2e0729de96d1)
还可以选择“计算机高级设置”→“环境变量”→“Path”选项,并在其中增加“C:\Program Files\MySQL\MySQL Server 5.7\bin\;”,就可以在命令提示符下直接执行MySQL连接命令了。
2.使用客户端工具Navicat for MySQL进行连接
安装Navicat for MySQL后,运行该程序,单击“文件”→“新建连接”选项。在“新建连接”窗口中输入连接名(该名称可自定义,但主机名和 IP 地址一定要准确),在本例中是“localhost”,端口为默认的 3306 端口(如果在安装或后续管理过程中修改了默认端口,则需要相应修改此处)。如图1-27所示,输入默认的用户名root及密码,单击“连接测试”按钮,测试配置是否成功。如果显示“连接成功”,则表示整个配置正确。在配置过程中还可以选择保存密码,这样Navicat for MySQL会将密码保存在配置文件中(避免每次连接时都要输入密码)。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_34_3.jpg?sign=1739373825-ZxB2xjUCFnfMJdK1CbEGqG7yaMwv9aIq-0-48f2b332052c490edd4e955f4291ae59)
图1-27 配置数据库连接
数据库配置完成后,在Navicat for MySQL窗口中单击“连接”下面的名称,即可打开数据库并进行管理等操作。
1.3.2 数据库密码操作
可以在命令行下修改root账户的密码。
在MySQL 5.7.6以后的版本中,将原来的password字段修改为authentication_string。尽管使用的加密算法还是原来的,但安全性得到了极大的提升。
1.版本低于MySQL 5.7.6
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_1.jpg?sign=1739373825-YfH72A1pJwZ16zNR7LKvxf50GjEw7A6c-0-8ad0ead19708a1c1e572d2fa9cf58798)
2.版本高于MySQL 5.7.6
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_2.jpg?sign=1739373825-cqt8NjiAwUHQrcv2dppDweMgmeJm87gR-0-65655147e8b2c21cc9f5342e6b6751ee)
3.查询密码值
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_3.jpg?sign=1739373825-6yNX72lKDdXE3o1JvKWCIo5gV165B8bJ-0-e1f40ad4675b0d03a3b533e2e89fb7ab)
1.3.3 数据库操作命令
1.数据库基本操作命令
(1)显示所有数据库并查询当前数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_4.jpg?sign=1739373825-Sn5K5zS5bKJRxbOudLYTKF1clfVK9zZU-0-754213b2101f2e0f62c2a8686b8870f8)
(2)创建数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_5.jpg?sign=1739373825-aUxBSVoUW4zyeQEiB8OR4M7yIO39OP3D-0-f4400c0dba990d65643bb0569fa8fc63)
(3)选择数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_6.jpg?sign=1739373825-f3IPLTQtzbkBrMOCw0NEPcheLxGFAv5e-0-2c85b57067eba6439910801ba737b024)
(4)无提示直接删除数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_7.jpg?sign=1739373825-GpnIyjAfstNeledyCx3kFFhVEBrTn3IC-0-843481f1e22509fb1dd07e4e954a89bf)
(5)有提示删除数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_1.jpg?sign=1739373825-QG3VXxM0PdqMse6enjoqQoa1bQYvKSxU-0-1baa9fa89dbd1e43ab33a150ed79f011)
(6)通过mysqldump备份数据库
导出整个数据库,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_2.jpg?sign=1739373825-hksFksPzJDm0o6N9rofFaLICH9UYA1HM-0-c72468d46655f80e5ee02dc6c806e2dc)
注意
这里的名称最好是有意义的名称和日期的组合,以便在数据库出现问题时及时恢复。
导出一个表,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_3.jpg?sign=1739373825-iCxk5IdJt7FT4LaPqM3hyXoIoM0iflwA-0-ecb61b74c0e3985ac517c788750c6709)
导出一个数据库结构,命令如下。-d表示没有数据。-add-drop-table表示在每个create语句之前增加一个drop table。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_4.jpg?sign=1739373825-Cr509osuqstoNoszdX5GzNApEEAl2fl6-0-cce44f2a3007115297ac02a94b09a7e0)
(7)恢复数据库
常用的source命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_5.jpg?sign=1739373825-PylQbwuy0BMY0o7KuqeA88fIzsOSaWkJ-0-b0d0a36a6120c406eaee6472faab0875)
使用mysqldump命令恢复数据库,示例如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_6.jpg?sign=1739373825-31Qeap1zu5yEEsjDfjvFf7RdznzbDItB-0-53a15b1c2829664a1daa7ca76dc66874)
使用mysql命令恢复数据库,示例如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_7.jpg?sign=1739373825-GiqtnnlT8xXLX0T2WNzJ1bIMhK0p8i3t-0-519818c8468c04524afdc80dcac6b4aa)
2.操作表相关命令
(1)使用MySQL数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_8.jpg?sign=1739373825-Jotp8MgZnnYKEr2BW0Y7Y9By812NyIG6-0-c4355cc07fc875eccbef4d149873bceb)
(2)显示mysql库里所有的表
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_9.jpg?sign=1739373825-25ENbFHyJ3qj88Z7lCJyjsmYrUihi1KQ-0-26d5d14b28bb9d23074960763022a8f7)
(3)显示具体的表结构
下面三个语句效果一样,describe后跟具体的表名。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_10.jpg?sign=1739373825-8eNrwcBThRkxysR0n9stdkwumNFFlBle-0-891a08e76f994cd91781ec2b429f4556)
(4)创建表
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_11.jpg?sign=1739373825-nfCINOIzD4AKVexVUKXaciK40KXVJ2Zb-0-b3f0290b379e067ad64b738753f41080)
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_1.jpg?sign=1739373825-9qoG1n9GaOprhjSvEtsQFD9R8NX9Cet7-0-6c598fca0508f9c5239a467b128ac498)
通过客户端工具进行查询,比较容易看到效果并修改存在错误的语句等,如图1-28所示。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_2.jpg?sign=1739373825-6gGKqSyrOizDJkyYE857Iwrd4seew6U9-0-719f35a0cd1324cbd2e195698fc31cd1)
图1-28 在客户端执行创建表查询
(5)删除表
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_3.jpg?sign=1739373825-fQbSbmLXJd37jl3qMwSJoX6fTHWa6BfI-0-653589ad10887a0197f2d356ee383236)
例如,执行如下命令,删除 Mytest 表(将直接删除该数据库中的表)。因此,执行该命令时一定要谨慎。MyISAM类型的表在删除后是无法恢复的,innodb表在删除后还有可能恢复。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_4.jpg?sign=1739373825-gwQuxk2gOWRclkuF6JT9cxv7jEeoN1Fo-0-6b43c6865e2513005877eccd8cda3aa8)
(6)插入数据
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_5.jpg?sign=1739373825-zls6cibAUqnI8mzjHJRgUSVxkDB3qdJH-0-799896d59715c6c59ebb0eae96bb0fb8)
或者
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_6.jpg?sign=1739373825-glnvfHzOiyqZ1EVd2wHSwaDl7KyFocvD-0-19c0f36e189e5404effd60904895de9a)
或者
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_7.jpg?sign=1739373825-OOvC9JHjwjvspgHi2Po6xC5LnYGxYPpq-0-34af564646d7f4053628c61e05cce99d)
(7)查询表中的数据
查询所有行,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_8.jpg?sign=1739373825-CaDefXC6yX6Tdb8WCb1e5fwNmp2uWTi7-0-72808eabf8b394c42d79dab49c0bba07)
查询前几行数据,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_9.jpg?sign=1739373825-TEbeZ3uW0273J3athqKx8xHZHii5AWUy-0-715cc432810a14b4d2a7df6865b8f0f1)
(8)删除表中的数据
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_10.jpg?sign=1739373825-FDfXzddeAqQXeXOdbsRdU6P0GOZIAeLE-0-a9a2accb46c30e667d1dd1a3ffb8cd9a)
(9)修改表中的数据
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_1.jpg?sign=1739373825-yQKKWzE3YZfcYMpHoXejJJUutTV7aSGS-0-c78a8a3ad2d666f0ace19d4d1fc9335a)
(10)在表中添加字段
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_2.jpg?sign=1739373825-beYjsGNqRjYLkuvjbiazO40UjSrRaeJg-0-6cbff98e2afec11d17615b9f9ba848c6)
(11)更改表名
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_3.jpg?sign=1739373825-LV97j2AGmoJbzCWmDyI172iZu24k54pX-0-81513120f464c6e66ac37d808d19295f)
(12)以文本方式将数据放入数据库表
例如,有数据文件D:/mysql.txt,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_4.jpg?sign=1739373825-VHNwBmKK9CbXK7uWUuW3N781oYIHGusX-0-2c25608d6c4d40e1ee14553ba32ebd7f)