一般情况下,我们都是使用的Navicat等的可视化工具进行数据导出。只有在特殊情况下,无法通过可视化工具进行数据库连接,只能通过命令行来操作,此时就需要用到mysqldump工具了。
以下内容摘自 musqldump原理
mysqldump
mysqldump是MySQL自带的逻辑备份工具。它的备份原理是通过协议连接到
MySQL数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert语句,当我们需要还原这些数据时,只要执行这些insert语句,即可将对应的数据还原。
这里,我们可以通过以下格式进行操作:
1 | mysqldump [选项] 数据库名 [表名] > 脚本名 |
或
1 | mysqldump [选项] --数据库名 [选项 表名] > 脚本名 |
或
1 | mysqldump [选项] --all-databases [选项] > 脚本名 |
| 参数名 | 缩写 | 含义 |
|---|---|---|
| –host | -h | 服务器IP地址 |
| –port | -P | 服务器端口号 |
| –user | -u MySQL | 用户名 |
| –password | -p MySQL | 密码 |
| –databases | 指定要备份的数据库 | |
| –all-databases | 备份mysql服务器上的所有数据库 | |
| –compact | 压缩模式,产生更少的输出 | |
| –comments | 添加注释信息 | |
| –complete-insert | 输出完成的插入语句 | |
| –lock-tables | 备份前,锁定所有数据库表 | |
| –no-create-db/–no-create-info | 禁止生成创建数据库语句 | |
| –force | 当出现错误时仍然继续备份操作 | |
| –default-character-set | 指定默认字符集 | |
| –add-locks | 备份数据库表时锁定数据库表 |
举个例子
备份dbname下tablename表的表结构与数据。
1 | mysqldump -u root -p dbname tablename > /backup/mysqldump/tablename.sql |
上述命令中,-u表示了用户名,后面的root就是-u的参数;-p表示了密码,这里就会在执行此行命令后要求输入数据库中用户名为root的密码;dbname表示数据库名;tablename表示表名称;>表示输出重定向;/backup/mysqldump/tablename.sql表示了输出的文件路径。