
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操作提示符窗口。

图1-26 MySQL命令连接窗口
也可以在C:\Program Files\MySQL\MySQL Server 5.7\bin目录下新建一个cmd.bat批处理文件,在其中输入“cmd.exe”,保存并运行,然后执行如下命令进行登录。

还可以选择“计算机高级设置”→“环境变量”→“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会将密码保存在配置文件中(避免每次连接时都要输入密码)。

图1-27 配置数据库连接
数据库配置完成后,在Navicat for MySQL窗口中单击“连接”下面的名称,即可打开数据库并进行管理等操作。
1.3.2 数据库密码操作
可以在命令行下修改root账户的密码。
在MySQL 5.7.6以后的版本中,将原来的password字段修改为authentication_string。尽管使用的加密算法还是原来的,但安全性得到了极大的提升。
1.版本低于MySQL 5.7.6

2.版本高于MySQL 5.7.6

3.查询密码值

1.3.3 数据库操作命令
1.数据库基本操作命令
(1)显示所有数据库并查询当前数据库

(2)创建数据库

(3)选择数据库

(4)无提示直接删除数据库

(5)有提示删除数据库

(6)通过mysqldump备份数据库
导出整个数据库,命令如下。

注意
这里的名称最好是有意义的名称和日期的组合,以便在数据库出现问题时及时恢复。
导出一个表,命令如下。

导出一个数据库结构,命令如下。-d表示没有数据。-add-drop-table表示在每个create语句之前增加一个drop table。

(7)恢复数据库
常用的source命令如下。

使用mysqldump命令恢复数据库,示例如下。

使用mysql命令恢复数据库,示例如下。

2.操作表相关命令
(1)使用MySQL数据库

(2)显示mysql库里所有的表

(3)显示具体的表结构
下面三个语句效果一样,describe后跟具体的表名。

(4)创建表


通过客户端工具进行查询,比较容易看到效果并修改存在错误的语句等,如图1-28所示。

图1-28 在客户端执行创建表查询
(5)删除表

例如,执行如下命令,删除 Mytest 表(将直接删除该数据库中的表)。因此,执行该命令时一定要谨慎。MyISAM类型的表在删除后是无法恢复的,innodb表在删除后还有可能恢复。

(6)插入数据

或者

或者

(7)查询表中的数据
查询所有行,命令如下。

查询前几行数据,命令如下。

(8)删除表中的数据

(9)修改表中的数据

(10)在表中添加字段

(11)更改表名

(12)以文本方式将数据放入数据库表
例如,有数据文件D:/mysql.txt,命令如下。
