UP | HOME

MySQL命令mysqldump使用

Table of Contents

由于对于数据库维护有分工,线上归运维,内网归开发。所以这次涉及 MySQL 拷贝库的工作归自己,思路使用了 mysqldump 命令导出旧库文件为 /path/temp.sql,然后创建新库并通过
source/path/temp.sql 导入,收工。将操作进行简单备注,方便备用。

操作

#导出数据库表结构
/usr/local/mysql/bin/mysqldump -uname -ppwd  -d --triggers -t databasename > databasename_temp.sql

#导出数据库存储过程和函数结构
/usr/local/mysql/bin/mysqldump -uname -ppwd -ntd -R databasename > databasename_temp.sql
/usr/local/mysql/bin/mysqldump -uname -ppwd  -d --triggers -R databasename > databasename_temp.sql
#说明
-R, –routines: 导出存储过程以及自定义函数

mysqldump

使用简单说明

- Create a backup (user will be prompted for a password):
  mysqldump --user user --password database_name --result-file=path/to/file.sql

- Backup a specific table redirecting the output to a file (user will be prompted for a password):
  mysqldump --user user --password database_name table_name > path/to/file.sql

- Backup all databases redirecting the output to a file (user will be prompted for a password):
  mysqldump --user user --password --all-databases > path/to/file.sql

- Backup all databases from a remote host, redirecting the output to a file (user will be prompted for a password):
  mysqldump --host={(ip_or_hostname)} --user user --password --all-databases > ({path/to/file.sql}}

  More information: https://dev.mysql.com/doc/refman/en/mysqldump.html.

常用参数说明

-?, –help
   显示帮助信息
–user, -u
  指定连接的用户名
–port, -P
  连接数据库端口号
–password, -p
  连接数据库密码
-S, –socket:
  指定socket文件连接,本地登录才会使用
-h, –host
  指定连接的服务器名称或者IP
-P, –port
  连接数据库监听的端口
–default-character-set
  设置字符集,默认是UTF8
  mysqldump -uroot -p –all-databases –default-character-set=latin1
-A, –all-databases
  导出所有数据库。不过默认情况下是不会导出information_schema库
  mysqldump -uroot -p –all-databases –all-tablespaces
-B, –databases
  导出指定的某个/或者某几个数据库,参数后面所有名字参量都被看作数据库名,包含CREATE DATABASE创建库的语句
  mysqldump -uroot -p –-databases test mysql
–tables
  导出指定表对象,参数格式为“库名 表名”,默认该参数将覆盖-B/–databases参数
  mysqldump -uroot -p --host=localhost --databases test --tables test
-w, –where
  只导出符合条件的记录
  mysqldump -uroot -p --host=localhost --all-databases --where="user='root'"
-l, –lock-tables
  默认参数,锁定读取的表对象,想导出一致性备份的话最后使用该参数,会导致无法对表执行写入操作
  mysqldump -uroot -p --host=localhost --all-databases --lock-tables
–no-data, -d
  不导出任何数据,只导出数据库表结构
  mysqldump -uroot -p –host=localhost –all-databases –no-data
–no-create-db, -n
  只导出数据,而不添加CREATE DATABASE 语句
  mysqldump -uroot -p –host=localhost –all-databases –no-create-db
–no-create-info, -t只导出数据,而不添加CREATE TABLE 语句
  mysqldump -uroot -p –host=localhost –all-databases –no-create-info
-R, –routines: 导出存储过程以及自定义函数
  在转储的数据库中转储存储程序(函数和程序)
  mysqldump -uroot -p --host=localhost --all-databases --routines
–opt
  功能等同于同时指定了 –add-drop-table, –add-locks, –create-options, –quick, –extended-insert, –lock-tables, –set-charset,以及 –disable-keys这些
  参数默认就是启用状态。使用–skip-opt来禁用该参数
–skip-opt
  禁用–opt选项,相当于同时禁用 –add-drop-table, –add-locks, –create-options, –quick, –extended-insert, –lock-tables, –set-charset, 及–disable-keys
  这些参数

持续更新...

Author: josephzeng

Lastmod: <2021-03-11 Thu>

License: CC BY-NC-ND 4.0

First created: 2021-03-11 Thu 00:00
Last updated: 2021-11-25 Thu 23:21
Power by Emacs 27.1 (Org mode 9.4)
© 2017 – 2021 by josephzeng