使用 mysqldump 工具导出数据库

    科技2022-07-11  241

     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 参数指定所有数据库名称一样)

     

     

    Processed: 0.017, SQL: 8