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-statisticsAdd an ANALYZE TABLE statement to regenerate any existing column statistics.
(使用高版本 mysqldump 去操作低版本 mysqld,不加该选项可能报错)
-h, --host=nameConnect to host.
(主机名)
-P, --port=#Port number to use for connection.
(端口号)
-u, --user=nameUser 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-dataNo 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, --databasesDump 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-databasesDump all the databases. This will be same as --databases with all databases selected.
(导出所有的数据库,作用同使用 --databases 参数指定所有数据库名称一样)