mysqldump

最后更新于:2022-04-02 03:57:19

[TOC] ## 语法 ``` mysqldump [OPTIONS] database [tables] mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] mysqldump [OPTIONS] --all-databases [OPTIONS] 参数 -A,--all-databases 导出全部数据库 -B,--databases 指定数据库 --databases db1 -C,--compress 在客户端和服务器之间启用压缩传递所有信息 --add-drop-database 每个数据库创建之前添加drop数据库语句 --add-drop-table 每个数据表创建之前添加drop数据表语句(默认开启) --skip-add-drop-table 取消每个数据表创建之前添加drop数据表语句 --comments 附加注释信息(默认) --skip-comments 取消附加注释信息 --force 在导出过程中忽略出现的SQL错误 -x,--lock-all-tables 提交请求锁定所有数据库中的所有表,以保证数据的一致性 --skip-quote-names 取消使用 "`" 引起表和列名。(默认使用 "`") --replace 使用REPLACE INTO 取代INSERT INTO -E,--events 导出事件 -R,--routines 导出存储过程以及自定义函数 -X,--xml 导出XML格式 --socket,-S 指定连接mysql的socket文件位置,默认路径/tmp/mysql.sock --user, -u 数据库用户名 -p 数据库密码 ``` ## 场景 ### 导出所有数据库 ``` mysqldump -uroot -proot --all-databases >/tmp/all.sql ``` ### 导出多个数据库 ``` mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql ``` ### 导出多个表 ``` mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql ``` ### 按指定条件导出 **如果多个表的条件相同可以一次性导出多个表** ``` mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1' >/tmp/a1.sql ``` ### 生成新的binlog文件 ``` mysqldump -uroot -proot --databases db1 -F >/tmp/db1.sql ``` ### 只导出表结构不导出数据 ``` mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql ``` ### 跨服务器导出并导入数据 ``` mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2 实例: mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test 说明: 被导入的数据库必须先创建,否则报错 -C 起用压缩 ``` ### 导出可兼容其他数据库 **导出的数据将和其它数据库或旧版本的MySQL 相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等** ``` mysqldump -uroot -p --all-databases --compatible=oracle ``` ## 还原数据库 ``` mysql --uroot -ptest db_name < backupfile.sql ``` ### 导出带 csv 格式 ``` ./mysqldump -uroot -p -T /data/mysql/dump t2 test --fields-terminated-by ',' --fields-optionally-enclosed-by '"' > cat test.csv 1,"a","\\\"##!aa" 2,"b","helloworld" 3,"c","helloworld" 4,"d","helloworld" ```
';