MySQL Community Server 是世界上应用在中小型网站架构中最广泛的一款数据库环境软件。眼下 IDC 行业发展蒸蒸日上,却也鱼龙混杂。就去年刮的那股网站整顿风,一下扫掉了很多应该遭到河蟹的网站,同时也有不少冤大头倒在了这个行列中。不仅没有自动数据备份功能的 IDC 公司我们不会选择,就算是有自动备份,也难以让部分有完美主义心理的人满足。然而,数据的意外丢失,也是我们心中不可承受之重……

MySQL 环境中有一个 mysqldump 命令,可以帮助我们远程/本地导出 MySQL 指定数据库的所有数据(SQL 语句形式)。本文将介绍如何便捷地使用 mysqldump 命令实现一键备份。

笔者使用的是 Windows 7 + MySQL Community Server 5.5 环境,默认安装路径为 C:\Program Files\MySQL\MySQL Server 5.5,而 mysqldump 命令所在路径为 \bin

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe" --host=服务器IP地址 --user=用户名 --password=密码 --add-locks --add-drop-table --lock-tables --database 数据库名称 > "输出文件名.sql"
  • --host=服务器IP地址:形如“--host=74.125.71.104”;
  • --user=用户名--password=密码:直接填写,如有特殊字符导致命令行冲突,可用半角双引号括起来;
  • --database 数据库名称,可输入多个,以半角空格分开;
  • --add-locks:意为在输出的 SQL 语句中,每段对数据的写操作之前和之后分别“锁定”和“解锁”当前表,防止因执行 SQL 语句时有其他对数据库的操作而造成冲突,产生错误;
  • --add-drop-table:指在创建表结构的语句前,检测与当前表相同名称的表是否存在,如果存在则先删除原表,再执行创建表结构语句,否则直接创建表结构;
  • --lock-tables:表示在执行 mysqldump 命令导出数据的时候,将指定的数据库表锁定;
  • > "输出文件名.sql":这是 Windows 命令行特有的功能,指将输出到命令行窗口的所有内容以文件的方式输出到指定文件名的文件中(UTF-8 编码)。

此外,mysqldump 命令还有别的参数,具体如下:

  • --no-data:仅导出指定数据库的表结构,而不导出数据部分;
  • --no-create-info:仅导出指定数据库的数据部分,而不创建表结构;
  • --add-drop-database:在创建数据库前先删除当前同名的数据库。

上述的命令格式可以在 Windows、Unix、Linux 等各个版本的 MySQL 环境中通用。