使用 mysqldump 工具导出数据库

 mysqldump 工具能够将另一台机器的 MySQL 上的数据库(结构 + 数据)以 SQL 语句的格式导出到 mysqldump 所在的机器,属于跨机器导出。

导出单个数据库


这种导出可以导出单个数据库,由用户指定需要导出的表。

 语法格式

mysqldump [OPTIONS] database [tables]

基本使用方式

 mysqldump --column-statistics=0 -h [hostname] -P 3306 -u [root] -p [-d] database [tables] > [filename.sql]

使用 > 将输出重定向到指定文件,该文件为 mysqdump 所在的机器。可以是绝对路径,也可以是相对路径。

使用这种方式是可以将其他服务器的数据库导出到本地。

导出的格式为 SQL 语句。

tables 是可选值,如果省略,则导出数据库的所有表。

选项说明

选项 选项说明
--column-statistics

 Add an ANALYZE TABLE statement to regenerate any existing column statistics.

使用高版本 mysqldump 去操作低版本 mysqld,不加该选项可能报错

-h, --host=name

Connect to host.

(主机名)

-P, --port=#

Port number to use for connection.

(端口号)

-u, --user=name

User for login if not current user.

(用户名)

-p, --password[=name]

Password to use when connecting to server. If password is not given it's solicited on the tty.

(密码,没有指定则会从终端获取)

-d, --no-data

No row information.

(不导出行数据,也就是说 SQL 文件没有 INSERT 语句,如果只需要结构,则加入此参数

导出多个数据库


这种导出可以导出多个数据库,由用户指定数据库名称,但是对于每个数据库无法指定表,而是导出该数据库下所有表结构

语法格式

mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]

基本使用方式

 mysqldump --column-statistics=0 -h [hostname] -P 3306 -u [user] -p -d --databases DB1 [DB2 DB3...] > [filename.sql]

选项说明

选项 选项说明
-B, --databases

Dump several databases. Note the difference in usage; in this case no tables are given. All name arguments are regarded as database names. 'USE db_name;' will be included in the output.

(所有的 name 参数都被当作数据库名称,而且 SQL 文件将会使用 USE 语句)

导出所有数据库


 导出的结构也会包含 mysql 这个内置数据库的结构。

语法格式

mysqldump [OPTIONS] --all-databases [OPTIONS]

基本使用方式

 mysqldump --column-statistics=0 -h [hostname] -P 3306 -u [user] -p -d --all-databases > [filename.sql]

选项说明

选项 选项说明
--all-databases

Dump all the databases. This will be same as --databases with all databases selected.

(导出所有的数据库,作用同使用 --databases 参数指定所有数据库名称一样)

猜你喜欢

转载自blog.csdn.net/qq_39291919/article/details/108912812