【备份Mysql数据库】分享一个珍藏多年的 mysqldump 命令使用说明,建议收藏 非常实用

什么是 mysqldump

mysqldump 命令对于数据库管理和数据备份非常重要。用户可以使用它轻松地导出 MySQL 数据库的结构和数据,生成可用于还原数据库的 SQL 脚本。这是数据库管理和迁移的关键工具,同时也是数据备份和恢复的基础。通过 mysqldump,用户可以灵活地定制导出的选项,确保满足特定需求,例如备份全部数据库、特定表、添加注释等。

分享一份珍藏多年的mysqldump 命令使用说明

bash 复制代码
# 1. 导出全部数据库,包括创建数据库语句和表数据
mysqldump -uroot -p --all-databases
​
# 2. 导出全部表空间,包括创建数据库语句、表空间信息和表数据
mysqldump -uroot -p --all-databases --all-tablespaces
​
# 3. 不导出任何表空间信息
mysqldump -uroot -p --all-databases --no-tablespaces
​
# 4. 每个数据库创建之前添加drop数据库语句
mysqldump -uroot -p --all-databases --add-drop-database
​
# 5. 每个数据表创建之前添加drop数据表语句,默认添加
mysqldump -uroot -p --all-databases
# 或者取消drop语句
mysqldump -uroot -p --all-databases --skip-add-drop-table
​
# 6. 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE,默认添加
mysqldump -uroot -p --all-databases
# 或者取消LOCK语句
mysqldump -uroot -p --all-databases --skip-add-locks
​
# 7. 允许创建是关键词的列名字
mysqldump -uroot -p --all-databases --allow-keywords
​
# 8. 在导出的数据中,'CHANGE MASTER'前添加'STOP SLAVE',并且在导出的最后添加'START SLAVE'
mysqldump -uroot -p --all-databases --apply-slave-statements
​
# 9. 指定字符集文件的目录
mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets
​
# 10. 附加注释信息,默认添加
mysqldump -uroot -p --all-databases
# 或者取消注释
mysqldump -uroot -p --all-databases --skip-comments
​
# 11. 导出的数据将和其它数据库或旧版本的MySQL 相兼容,指定兼容模式为ansi
mysqldump -uroot -p --all-databases --compatible=ansi
​
# 12. 导出更少的输出信息(用于调试),去掉注释和头尾等结构
mysqldump -uroot -p --all-databases --compact
​
# 13. 使用完整的insert语句(包含列名称),可能会受到max_allowed_packet参数的影响
mysqldump -uroot -p --all-databases --complete-insert
​
# 14. 客户端和服务器之间启用压缩传递所有信息
mysqldump -uroot -p --all-databases --compress
​
# 15. CREATE TABLE语句中包括所有MySQL特性选项,默认开启
mysqldump -uroot -p --all-databases
​
# 16. 指定需要导出的数据库
mysqldump -uroot -p --databases test mysql
​
# 17. 输出debug信息到指定文件
mysqldump -uroot -p --all-databases --debug
# 或者指定文件路径
mysqldump -uroot -p --all-databases --debug="d:t:o,/tmp/debug.trace"
​
# 18. 查内存和打开文件使用说明并退出
mysqldump -uroot -p --all-databases --debug-check
​
# 19. 输出调试信息并退出
mysqldump -uroot -p --all-databases --debug-info
​
# 20. 设置默认字符集,默认为utf8
mysqldump -uroot -p --all-databases --default-character-set=latin1
​
# 21. 用延时插入方式(INSERT DELAYED)导出数据
mysqldump -uroot -p --all-databases --delayed-insert
​
# 22. master备份后删除日志,自动激活--master-data
mysqldump -uroot -p --all-databases --delete-master-logs
​
# 23. 导出主的binlog位置和文件名追加到导出数据的文件中
mysqldump -uroot -p --all-databases --dump-slave=1
# 或者增加说明信息
mysqldump -uroot -p --all-databases --dump-slave=2
​
# 24. 导出事件
mysqldump -uroot -p --all-databases --events
​
# 25. 使用具有多个VALUES列的INSERT语法,默认开启
mysqldump -uroot -p --all-databases
# 或者取消选项
mysqldump -uroot -p --all-databases --skip-extended-insert
​
# 26. 导出文件中忽略给定字段,与--tab选项一起使用
mysqldump -uroot -p test test --tab="/home/mysql" --fields-terminated-by="#"
​
# 27. 输出文件中的各个字段用给定字符包裹,与--tab选项一起使用
mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#"
​
# 28. 输出文件中的各个字段用给定字符选择性包裹,与--tab选项一起使用
mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#" --fields-optionally-enclosed-by="#"
​
# 29. 输出文件中的各个字段忽略给定字符,与--tab选项一起使用
mysqldump -uroot -p mysql user --tab="/home/mysql" --fields-escaped-by="#"
​
# 30. 开始导出之前刷新日志
mysqldump -uroot -p --all-databases --flush-logs
​
# 31. 在导出mysql数据库之后,发出一条FLUSH PRIVILEGES 语句
mysqldump -uroot -p --all-databases --flush-privileges
​
# 32. 在导出过程中忽略出现的SQL错误
mysqldump -uroot -p --all-databases --force
​
# 33. 显示帮助信息并退出
mysqldump --help
​
# 34. 使用十六进制格式导出二进制字符串字段
mysqldump -uroot -p --all-databases --hex-blob
​
# 35. 指定需要导出的主机信息
mysqldump -uroot -p --host=localhost --all-databases
​
# 36. 不导出指定表
mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user
​
# 37. 在--dump-slave产生的'CHANGE MASTER TO..`语句中增加'MASTER_HOST=<host>,MASTER_PORT=<port>`
mysqldump -uroot -p --host=localhost --all-databases --include-master-host-port
​
# 38. 在插入行时使用INSERT IGNORE语句
mysqldump -uroot -p --host=localhost --all-databases --insert-ignore
​
# 39. 输出文件的每行用给定字符串划分,与--tab选项一起使用
mysqldump -uroot -p --host=localhost test test --tab="/tmp/mysql" --lines-terminated-by="##"
​
# 40. 提交请求锁定所有数据库中的所有表,以保证数据的一致性
mysqldump -uroot -p --host=localhost --all-databases --lock-all-tables
​
# 41. 锁定所有表,用READ LOCAL锁定表以允许MyISAM表并行插入
mysqldump -uroot -p --host=localhost --all-databases --lock-tables
​
# 42. 附加警告和错误信息到给定文件
mysqldump -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqldump_error_log.err
​
# 43. 将binlog的位置和文件名追加到输出文件中,输出CHANGE MASTER命令
mysqldump -uroot -p --host=localhost --all-databases --master-data=1
# 或者在CHANGE MASTER命令前添加注释信息
mysqldump -uroot -p --host=localhost --all-databases --master-data=2
​
# 44. 设置服务器发送和接受的最大包长度
mysqldump -uroot -p --host=localhost --all-databases --max_allowed_packet=10240
​
# 45. TCP/IP和socket连接的缓存大小
mysqldump -uroot -p --host=localhost --all-databases --net_buffer_length=1024
​
# 46. 使用autocommit/commit 语句包裹表
mysqldump -uroot -p --host=localhost --all-databases --no-autocommit
​
# 47. 只导出数据,而不添加CREATE DATABASE 语句
mysqldump -uroot -p --host=localhost --all-databases --no-create-db
​
# 48. 只导出数据,而不添加CREATE TABLE 语句
mysqldump -uroot -p --host=localhost --all-databases --no-create-info
​
# 49. 不导出任何数据,只导出数据库表结构
mysqldump -uroot -p --host=localhost --all-databases --no-data
​
# 50. 设置默认字符集为utf8
mysqldump -uroot -p --host=localhost --all-databases --no-set-names
​
# 51. 使用--opt选项,默认开启
mysqldump -uroot -p --host=localhost --all-databases --opt
​
# 52. 如果存在主键,或者第一个唯一键,对每个表的记录进行排序
mysqldump -uroot -p --host=localhost --all-databases --order-by-primary
​
# 53. 连接数据库密码
# (密码应该在-p后面直接跟随,例如: -pYourPassword)
​
# 54. 使用命名管道连接mysql(仅在Windows系统可用)
mysqldump -uroot -p --host=localhost --all-databases --pipe
​
# 55. 连接数据库端口号
mysqldump -uroot -p --host=localhost --all-databases --port=3306
​
# 56. 使用的连接协议,包括:tcp, socket, pipe, memory
mysqldump -uroot -p --host=localhost --all-databases --protocol=tcp
​
# 57. 不缓冲查询,直接导出到标准输出,默认开启
mysqldump -uroot -p --host=localhost --all-databases
# 或者取消该选项
mysqldump -uroot -p --host=localhost --all-databases --skip-quick
​
# 58. 使用(`)引起表和列名字,默认开启
mysqldump -uroot -p --host=localhost --all-databases
# 或者取消该选项
mysqldump -uroot -p --host=localhost --all-databases --skip-quote-names
​
相关推荐
阿华的代码王国3 分钟前
MySQL ------- 索引(B树B+树)
数据库·mysql
王哲晓26 分钟前
Linux通过yum安装Docker
java·linux·docker
Hello.Reader31 分钟前
StarRocks实时分析数据库的基础与应用
大数据·数据库
执键行天涯32 分钟前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
liupenglove38 分钟前
golang操作mysql利器-gorm
mysql·golang
gopher951139 分钟前
linux驱动开发-中断子系统
linux·运维·驱动开发
yanglamei196243 分钟前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
码哝小鱼1 小时前
firewalld封禁IP或IP段
linux·网络
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
鼠鼠龙年发大财1 小时前
【x**3专享】安装SSH、XFTP、XShell、ARM Linux
linux·arm开发·ssh