下面列出了查询数据库运行状态的常用命令:
● 查看数据库当前最大连接数
show status like '%Max_used_connections%';
● 查看数据库表锁定状态
show status like '%table_lock%';
● 查看数据库行锁定状态
show status like 'innodb_row_lock%';
● 查看数据库当前缓存情况
show status like '%qcache%';
● 查看由于没有正确关闭连接,已经放弃的连接数量
show status like 'Aborted_clients';
4、 MySQL数据库的备份与恢复
备份MySQL数据库常用工具是mysqldump,mysqldump可以把整个数据库装载到一个SQL文件中,这个文件包含重建数据库所需要的SQL命令。
(1)备份整个数据库
备份整个数据库的命令语句如下:
mysqldump -uroot -pPassword [database name] > [dump file]
其中,-uroot为数据库用户,这里为root用户,-pPassword为访问数据库密码,Password为密码项,database name为需要备份的数据库名称,dump file为备份文件路径。
例如,假如要备份MySQL系统数据库world到D盘根目录下的world.sql文件,可以在系统命令行窗口输入如下命令:
mysqldump -uroot -p~123456q world > d:\worldback.sql
需要注意的是,mysqldump是一个客户端程序,不能在MySQL环境下运行,要在系统Shell环境下运行,如Windows命令行窗口。
(2)备份数据库表结构,不包括表数据
备份数据库表结构的命令语句如下:
mysqldump -uroot -pPassword -d [database name] > [dump file]
例如,假如要备份MySQL安装示例数据库world表结构到D盘根目录下的worldback.sql文件,可以在系统命令行窗口输入如下命令:
mysqldump -uroot -p~123456q -d world > d:\worldback.sql
(3)导出数据库指定表结构
有时需要导出数据库指定几个表的结构,可以在数据库名称后面添加要导出的表名,表之间用英文空格分隔。
例如,下面的语句导出world数据库的city表和country表。
mysqldump -uroot -p~123456q -d world city country > db.sql
如果需要表结构和表数据一同导出,可以去掉在数据库名称前面去掉参数d,参数d的意思就是不导出数据。
(4)备份数据库的恢复
使用mysqldump恢复备份数据库的命令和备份数据库的命令基本相同,区别是命令中的“>”符号变为“
例如,恢复先前备份的db.sql文件,可以在系统命令行窗口输入如下命令:
mysqldump -uroot -p~123456q world < d:\db.sql
注意:恢复备份数据库之前,需要确保待恢复的数据库已经存在。如果备份数据库中包含数据,还需要确保备份数据库和待恢复数据库使用的字符集要相同,不然可能会发生备份恢复错误,无法恢复数据库。
(5)使用Navicat备份数据库
使用Navicat备份数据库较为简单,选择需要备份的数据库,单击导航条上的备份按钮图标,可进入备份工作窗口。在备份工作窗口,选择新建备份选项,Navicat弹出备份对话框,在对话框中填入备份备注,单击开始按钮。Navicat备份完成后,单击保存按钮保存备份文件即可。
当需要还原备份数据库时,在备份工作窗口,可以选择已备份的文件进行恢复。
■ 课程小结
(1)数据库在使用过程中,有时需要查看数据库的相关信息,了解当前数据库的使用情况。MySQL提供了show系列命令,可以查看数据库表、全局变量值以及运行状态。show variables命令可以查看全局变量值,如数据库当前连接数量、数据库日志是否开启等。show status命令可以查看数据库运行状态,如当前缓存情况、因没有关闭连接而放弃的连接数量等。
(2)MySQL数据库的主要备份工具为mysqldump,mysqldump可以把整个数据库装载到一个SQL文件中,这个文件包含重建数据库所需要的SQL命令。如果使用Navicat数据库管理工具管理mySQL数据库,可以直接使用Navicat提供的备份工具进行备份。