MySQL之mysqldump的使用详解
什么是mysqldump?
mysqldump是MySQL数据库管理系统的一个命令行工具,用于将数据库中的数据和结构导出为SQL文件,这样,用户可以将这些数据导入到其他MySQL服务器或数据库中,或者在其他操作系统中进行恢复,mysqldump的主要作用是帮助用户备份数据库,以便在需要时恢复数据。
mysqldump的基本语法
mysqldump的语法如下:
mysqldump -u 用户名 -p密码 -h 主机名 -P 端口号 --databases 数据库名 > 输出文件.sql
各参数说明:
-u
:指定用户名。
-p
:提示输入密码。
-h
:指定主机名,默认为localhost。
-P
:指定端口号,默认为3306。
--databases
:指定要导出的数据库,可以使用通配符(*)表示所有数据库。
>
:将输出重定向到指定的文件。
mysqldump的常用选项
1、--opt
:生成兼容MySQL 5.7及更低版本的SQL文件。
2、--no-data
:仅导出数据库结构,不导出数据。
3、--add-drop-table
:在导出的SQL文件中添加DROP TABLE语句,以便在导入时先删除原表。
4、--single-transaction
:使用单一事务来导出数据,确保数据的一致性。
5、--lock-tables
:对导出的表加读锁,防止其他用户在此期间修改表结构。
6、--hex-blob
:将BLOB和TEXT类型的数据导出为十六进制格式。
7、--skip-triggers
:跳过触发器,减少导出文件的大小。
8、--set-gtid-purged=OFF
:设置GTID_PURGED选项为OFF,以便在导入时不使用GTID模式。
9、--routines
:导出存储过程、函数等对象。
10、--triggers
:导出触发器。
11、--events
:导出事件。
12、--comments
:在导出的SQL文件中添加注释,方便识别表结构和数据。
13、--default-character-set=字符集
:设置导出文件的默认字符集。
14、--quick
:快速导出,不检查语法错误。
15、--skip-extended-insert
:跳过扩展插入语句,减小导出文件大小。
16、--compatible
:生成与MySQL 5.6及更低版本兼容的SQL文件。
17、--create-options
:在创建表时使用指定的选项。
18、--add-drop-database
:在导出的SQL文件中添加DROP DATABASE语句,以便在导入时先删除原数据库。
19、--set-charset
:设置导出文件的字符集。
20、--default-auth
:指定默认的身份验证插件。
21、--ssl-ca
:指定SSL CA证书文件的路径。
22、--ssl-cert
:指定SSL客户端证书文件的路径。
23、--ssl-key
:指定SSL客户端密钥文件的路径。
24、--ssl-ciphers
:指定SSL加密套件列表。
25、--skip-tz-utc
:跳过分隔符为UTC的时间区域设置。
26、--skip-set-charset
:跳过分隔符设置字符集的操作。
27、--column-statistics=0|1|on|off|summary|raw
:设置列统计信息的输出方式,0表示不输出,1表示输出,on表示输出摘要信息,off表示不输出,summary表示输出汇总信息,raw表示输出原始统计信息。
28、--disable-keys
:禁用外键约束检查。
29、--disable-foreign-key-checks
:禁用外键约束检查(与--disable-keys功能相同)。
30、--enable-keys
:启用外键约束检查。
31、--enable-foreign-key-checks
:启用外键约束检查(与--enable-keys功能相同)。
32、--skip-comments
:跳过分隔符后的注释内容。
33、--skip-set-charset
:跳过分隔符设置字符集的操作。
34、--hex-blob
:将BLOB和TEXT类型的数据导出为十六进制格式。
35、--hex-quotes
:将双引号和单引号转换为十六进制字符。
36、--compact
:使用紧凑格式输出数据和结构信息。
37、--no-create-info
:不输出创建表的信息。
38、--add-drop-tablespaces
:在导出的SQL文件中添加DROP TABLESPACES语句,以便在导入时先删除原表空间。
39、--add-drop-events
:在导出的SQL文件中添加DROP EVENTS语句,以便在导入时先删除原事件。
40、--add-drop-routines
:在导出的SQL文件中添加DROP ROUTINES语句,以便在导入时先删除原存储过程、函数等对象。
41、--add-drop-triggers
:在导出的SQL文件中添加DROP TRIGGERS语句,以便在导入时先删除原触发器。
42、--add-drop-functions
:在导出的SQL文件中添加DROP FUNCTIONS语句,以便在导入时先删除原存储过程、函数等对象。
43、--add-drop-procedures
:在导出的SQL文件中添加DROP PROCEDURES语句,以便在导入时先删除原存储过程、函数等对象。
44、--no-create-db
:不创建新的数据库对象(如索引、视图等)。
45、--no-create-info
:不输出创建表的信息(与上述选项的功能相同)。
46、--compatible=VERSION
:设置兼容性级别,可以是MySQL 4、5、6或7等版本对应的数字或字符串。--compatible=50000
,表示兼容MySQL 5.0版本;--compatible=MyISAM
,表示兼容MyISAM存储引擎;--compatible=DEFAULT
,表示使用当前客户端的兼容性级别(默认值)。
47、--default_character_set=字符集
:设置默认字符集,可以是utf8、gbk、utf8mb4等字符集名称或编号(utf8
,表示utf8编码;utf8mb4
,表示utf8mb4编码;utf8mb4_unicode_ci
,表示utf8mb4编码下的Unicode排序规则),注意:CHARACTER SET
和COLLATE
必须在同一个SETTINGS项中指定(SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
),否则可能导致导入失败。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/215498.html