一键导出数据库SQL脚本的mysqldump命令,备份或转移Mysql数据库常用

本文阅读 3 分钟
首页 开发运维 正文

命令基本参数说明

mysqldump是mysql自带的一个非常使用的工具,主要功能就是把数据库导出成一个sql文件,包括数据库的结构是数据。经常用于数据库的迁移和备份场景。

mysqldump 基础使用语法如下:

Usage: mysqldump [OPTIONS] database [tables] 
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] 
OR     mysqldump [OPTIONS] --all-databases [OPTIONS] 

常用的参数说明:
mysqldump常用参数含义列表
更详细的可参考mysql官方文档。

Linux服务器场景下使用示例

导出整个数据库

mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u linuxde -p smgp_apps_linuxde > linuxde.sql

导出一个表

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u linuxde -p smgp_apps_linuxde users > linuxde_users.sql

导出一个数据库结构

mysqldump -u linuxde -p -d --add-drop-table smgp_apps_linuxde > linuxde_db.sql
-d没有数据,--add-drop-table每个create语句之前增加一个drop table

Windows系统场景下使用示例

windows系统中使用mysqldump.exe文件,它是MySQL的一个命令文件,在安装目录MySQL Server 5.x\bin下可以找到。你也可以将mysqldump.exe文件拷贝到别的目录下使用。

首先,打开cmd,进入mysqldump.exe所在目录下,然后再执行mysqldump命令即可,例如:

mysqldump -h你的数据库服务器IP -u账号 -p密码 --lock-tables=0 --compact --no-create-info --skip-comments test t_dict > D:/demo.sql

执行完成后,可以在D盘找到生成的 demo.sql 文件。

一些相关功能使用示例

# 备份全部数据库(包含存储过程、自定义函数及事件) 
mysqldump -uroot -pxxxxxx --single-transaction -R -E --all-databases > /tmp/all_database.sql 
 
# 要求记录 binlog 位点信息 可用于搭建从库 
mysqldump -uroot -pxxxxxx --single-transaction -R -E --all-databases --master-data=2 > /tmp/all_database.sql 
 
# 备份指定数据库 
mysqldump -uroot -pxxxxxx --single-transaction -R -E --databases db1 > /tmp/db1.sql 
mysqldump -uroot -pxxxxxx --single-transaction -R -E --databases db1 db2 > /tmp/db1_db2.sql 
 
# 备份部分表 
mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 > /tmp/tb1.sql 
mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 tb2 tb3 > /tmp/tb.sql 
 
# 导出某个表,数据以单行insert显示 
mysqldump -uroot -pxxxxxx --single-transaction --skip-extended-insert db1 tb1 > /tmp/tb1.sql 
 
# 导出单表的部分数据 
mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 --where=" create_time >= '2021-06-01 00:00:00' " > /tmp/tb1.sql 
mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 --where='id < 10' > /tmp/tb1.sql 
 
# 排除某些表导出 
mysqldump -uroot -pxxxxxx --single-transaction --databases db1 --ignore-table=db1.tb1 --ignore-table=db1.tb2 > /tmp/db1.sql 
 
# 只导出结构或只导出数据 
mysqldump -uroot -pxxxxxx db1 --no-data > /tmp/db1_jiegou.sql 
mysqldump -uroot -pxxxxxx db1 --no-create-info > /tmp/db1_data.sql 
 
# 只导出某个库的存储过程及自定义函数 
mysqldump -uroot -pxxxxxx -d -t -R db1 > /tmp/db1_routine.sql 
 
# 远程导出 即MySQL服务端不在本地 
mysqldump -uroot -pxxxxxx -hxxx.xxx.xx -P3306 --single-transaction --databases db1 > /tmp/db1.sql 

备份远程MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
 
备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump ---add-drop-table -uusername -ppassword databasename > backupfile.sql
 
直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
 
备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
 
同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword --databases databasename1 databasename2 databasename3 > multibackupfile.sql
 
仅仅备份数据库结构
mysqldump --no-data --databases databasename1 databasename2 databasename3 > structurebackupfile.sql
 
备份服务器上所有数据库
mysqldump --all-databases allbackupfile.sql
 
还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
 
还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

本文来自投稿,不代表本站立场,如若转载,请注明出处:
-- 展开阅读全文 --
网站针对语言或地域划分时,从SEO的角度看用二级域名好还是二级目录好?
« 上一篇 06-21
bat小工具之自动Mysql数据库备份
下一篇 » 06-21

热门文章

标签TAG