mysql 数据库导出-导入
备份数据库:
mysqldump –user=root –password=root密码 –lock-all-tables 数据库名 > 备份⽂件.sql
恢复数据库:
mysql -u root –password=root密码 数据库名 < 备份⽂件.sql
------------------------
mysqldump -h 服务器 -u用户名 -p密码 选项与参数 > 备份文件.sql
参数
参数 | 解释 |
---|---|
-A --all-databases | 导出全部数据库 |
-Y --all-tablespaces | 导出全部表空间 |
--add-drop-database | 每个数据库创建之前添加drop数据库语句。 |
--add-drop-table | 每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项) |
--add-locks | 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(默认为打开状态,使用--skip-add-locks取消选项) |
--comments | 附加注释信息。默认为打开,可以用--skip-comments取消 |
--compact | 导出更少的输出信息(用于调试)。去掉注释和头尾等结构。可以使用选项:--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys |
-c --complete-insert | 使用完整的insert语句(包含列名称)。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。 |
-C --compress | 在客户端和服务器之间启用压缩传递所有信息 |
-B --databases | 导出几个数据库。参数后面所有名字参量都被看作数据库名。 |
--debug | 输出debug信息,用于调试。 |
--debug-info | 输出调试信息并退出 |
--default-character-set | 设置默认字符集,默认值为utf8 |
--delayed-insert | 采用延时插入方式(INSERT DELAYED)导出数据 |
-E --events | 导出事件。 |
--master-data | 在备份文件中写入备份时的binlog文件。值为1时,binlog文件名和位置没有注释,为2时,则在备份文件中将binlog的文件名和位置进行注释。 |
--flush-logs | 开始导出之前刷新日志。请注意:假如一次导出多个数据库(使用选项--databases或者--all-databases),将会逐个数据库刷新日志。除使用--lock-all-tables或者--master-data外。在这种情况下,日志将会被刷新一次,相应的所以表同时被锁定。因此,如果打算同时导出和刷新日志应该使用--lock-all-tables 或者--master-data 和--flush-logs。 |
--flush-privileges | 在导出mysql数据库之后,发出一条FLUSH PRIVILEGES 语句。为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。 |
--force | 在导出过程中忽略出现的SQL错误。 |
-h --host | 需要导出的主机信息 |
--ignore-table | 不导出指定表。指定忽略多个表时,需要重复多次,每次一个表。每个表必须同时指定数据库和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 …… |
-x --lock-all-tables | 提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。 |
-l --lock-tables | 开始导出前,锁定所有表。用READ LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表。请注意当导出多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。 |
--single-transaction | 适合innodb事务数据库的备份。保证备份的一致性,原理是设定本次会话的隔离级别为Repeatable read,来保证本次会话(也就是dump)时,不会看到其它会话已经提交了的数据。 |
-F | 刷新binlog,如果binlog打开了,-F参数会在备份时自动刷新binlog进行切换。 |
-n --no-create-db | 只导出数据,而不添加CREATE DATABASE 语句。 |
-t --no-create-info | 只导出数据,而不添加CREATE TABLE 语句。 |
-d --no-data | 不导出任何数据,只导出数据库表结构。 |
-p --password | 连接数据库密码 |
-P --port | 连接数据库端口号 |
-u --user | 指定连接的用户名。 |
-R | 备份存储过程和函数数据(如果开发写了函数和存储过程,就备,没写就不备) |
--triggers | 备份触发器数据(现在都是开发写触发器) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具