![网络攻防实战研究: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=1739278895-R6tqBX1RaohD01lL3A3PhEIexnhi1dBH-0-37123242f08216e6bb0f25e468124201)
图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=1739278895-7DEdE4K7N6yiSRxjF5bhykAkdaLACkM4-0-464eb255f08fd27f29719fb165bc2a66)
还可以选择“计算机高级设置”→“环境变量”→“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=1739278895-l6ODAeeOYyd1NnDYYDG0QPKEDeOu6Ev4-0-8e5b762439eef6d766f0c20343f1c6c0)
图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=1739278895-sTBVLhm8Xk7Fcyne3p2I3594eMnIBIPn-0-07c3c597184f8052f652988b018ae79b)
2.版本高于MySQL 5.7.6
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_2.jpg?sign=1739278895-euaoVkAKZxPaVZaTl3u4staYlD1MKaZ5-0-7c9e286d9c476f725850f41adff74431)
3.查询密码值
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_3.jpg?sign=1739278895-E4PrPyOZo0YXmXJHWaZXHfuMr0zTnjO0-0-0992110277bc38785208945a21e88fe9)
1.3.3 数据库操作命令
1.数据库基本操作命令
(1)显示所有数据库并查询当前数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_4.jpg?sign=1739278895-wexBZQEY5232JisGKouCknsENJGSqCCA-0-3aa88808ce148498a863a26fc2337024)
(2)创建数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_5.jpg?sign=1739278895-I4gbep9hS7KKMnBwQXVE2emHTdOLXHgr-0-35e012ab2f6dbddf491ebcb9c996f75b)
(3)选择数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_6.jpg?sign=1739278895-DUkyzvCRHlo25i5IIYpkPcAtGPKMQES8-0-773920fb0e58886791518ffa4be3a376)
(4)无提示直接删除数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_35_7.jpg?sign=1739278895-bQ5GC9IHYi2zaJMmBNFK96g4ItDiByFw-0-c030d7d7e0e26b568e0ac19d8aab9094)
(5)有提示删除数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_1.jpg?sign=1739278895-hjRmj9Dk0uc28EUP33ci8Yw6ghfKDYdh-0-ea75f20a744a4e158a4a16624ac88159)
(6)通过mysqldump备份数据库
导出整个数据库,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_2.jpg?sign=1739278895-GQSDbUzGfEAAkNicWcisGlJvoWX9LuCX-0-f037c23af18dcd972b5c544a28412a66)
注意
这里的名称最好是有意义的名称和日期的组合,以便在数据库出现问题时及时恢复。
导出一个表,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_3.jpg?sign=1739278895-TUUGOwCSND7tXm4Am9HvVzrdqM2iFH3L-0-56aba9154a5bfa68498297627464cf62)
导出一个数据库结构,命令如下。-d表示没有数据。-add-drop-table表示在每个create语句之前增加一个drop table。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_4.jpg?sign=1739278895-A4HFy0hblU8Mg5D7xvA9BS5rKvAFUZFw-0-fb05dccb40ae57c54bd1e974fabbadb7)
(7)恢复数据库
常用的source命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_5.jpg?sign=1739278895-6UfAf1ijhk42cDkN9JjCRfYizxvu3O4q-0-0d8d26e0c2e88b492fa1ff89b4844923)
使用mysqldump命令恢复数据库,示例如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_6.jpg?sign=1739278895-YNeGva1l1Yn88yzGWScLt49NPECtfcKU-0-57ed4b9c7c9c04fa5a5a2c2c77533748)
使用mysql命令恢复数据库,示例如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_7.jpg?sign=1739278895-ULnsTr4wsjb0tqSfqtzhlMo9dCP56ut7-0-7878511b1cffe8e66594e9cd9fc546c8)
2.操作表相关命令
(1)使用MySQL数据库
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_8.jpg?sign=1739278895-vIb5hSiKMzJKlCvJehfJg7FlhtHpQ32K-0-4781a7e3a430aeb7f745c3ca76f6776a)
(2)显示mysql库里所有的表
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_9.jpg?sign=1739278895-MnGRgnFAtGXHIf9uENX32uVbb688AQ9G-0-115fb8c011c47c307940d3c15ab70088)
(3)显示具体的表结构
下面三个语句效果一样,describe后跟具体的表名。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_10.jpg?sign=1739278895-kl78hAwVzrp3mHsbQXPJRmnJ5psw1P8X-0-fb494fd5038ed82607176e592fd9d927)
(4)创建表
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_36_11.jpg?sign=1739278895-US8csN9iiAqHfhFGBr3gS8kWJMwydpQR-0-95be5fb254303ee6bd97237be69d4bd2)
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_1.jpg?sign=1739278895-NN7W7JjTIsQnceFIT2J6p6PFR1iIpSF6-0-26601c7760b838a0e8b0d551b4b980d4)
通过客户端工具进行查询,比较容易看到效果并修改存在错误的语句等,如图1-28所示。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_2.jpg?sign=1739278895-Rk9XznGeh6iyYecowLJdsHFY7xAyc0dV-0-e3e0e77e39d142af3e791316fe80c5fc)
图1-28 在客户端执行创建表查询
(5)删除表
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_3.jpg?sign=1739278895-b1A4LNZUICreQsAs6Cl1jcWjVlHiMPE2-0-47f0c23bb1d244d021e1201b2bc98cd3)
例如,执行如下命令,删除 Mytest 表(将直接删除该数据库中的表)。因此,执行该命令时一定要谨慎。MyISAM类型的表在删除后是无法恢复的,innodb表在删除后还有可能恢复。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_4.jpg?sign=1739278895-5jF7sUs7UBEZAi0mEWnQxsjYUHktL5BF-0-9804e63d5a7c2292cd5b75520d1a2bec)
(6)插入数据
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_5.jpg?sign=1739278895-8DXYFfbQmxs2hJOpKm8SuR0RokX4HxLm-0-df56c55cfb3c7a791cbe808785e69c7c)
或者
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_6.jpg?sign=1739278895-hcfBR1PydGfwlQrNpDTdtpvGxbQ6bnav-0-0da60923aac17f6fc28490525ccf3613)
或者
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_7.jpg?sign=1739278895-WC1DWV22xC6dmTFol7VVTYECjoEFSwVk-0-abcc94c747468458e3e8957259b7a3d9)
(7)查询表中的数据
查询所有行,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_8.jpg?sign=1739278895-VKs2WisiOHRV5Lgc9RxQtbrnHiR7QTSq-0-0c670873310a4290d30ef12bc46453a5)
查询前几行数据,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_9.jpg?sign=1739278895-wVUlprfzN4HkfcJtgciT2mD8VIx4BWOk-0-07bfa8b5e0b89a754d743e053cf5a5fa)
(8)删除表中的数据
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_37_10.jpg?sign=1739278895-du7eQfvt24OckxPFCZqq8xytfOeW1KeC-0-d9884de38919944a259218ea5d3f695a)
(9)修改表中的数据
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_1.jpg?sign=1739278895-1quxDXAbIQ3wjE72HB5t6GqUNPv8dGhY-0-6015fd985aa7f0179a06bd6dea717048)
(10)在表中添加字段
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_2.jpg?sign=1739278895-rhNoWUr9PTghe7I69wu3wMV6KKt75ktZ-0-4647efead88e59a487f1c5bf23f332cd)
(11)更改表名
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_3.jpg?sign=1739278895-ORhbIpIgl4FJEwff4Yubdk1SFBWijb77-0-573fc1b2d37f7a12537788fc9548fbeb)
(12)以文本方式将数据放入数据库表
例如,有数据文件D:/mysql.txt,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_38_4.jpg?sign=1739278895-R6GQGD4uQGSvvoyUgVozcogjRHYlCzII-0-d200029799c7bdd8fb7f4659945b00a0)