MySql或MariaDB如何导出和导入数据库和表

1,022 阅读3分钟

导出数据

导出整个数据库(包含数据)

要导出整个数据库,可以使用以下命令:

mysqldump -u username -p database_name > backup.sql
  • username:你的 MySQL 用户名。
  • database_name:你要导出的数据库名称。
  • backup.sql:导出文件的名称,可以根据需要修改。

运行该命令后,系统会提示你输入密码。输入密码后,数据库将被导出到指定的 backup.sql 文件中。

导出单个数据表(包含数据)

要导出数据库中的单个表,可以使用以下命令:

mysqldump -u username -p database_name table_name > table_backup.sql
  • username:你的 MySQL 用户名。
  • database_name:包含你要导出表的数据库名称。
  • table_name:你要导出的表的名称。
  • table_backup.sql:导出文件的名称,可以根据需要修改。

导出多个数据表(包含数据)

要导出多个表,可以在命令中指定多个表名:

mysqldump -u username -p database_name table1 table2 > tables_backup.sql
  • table1table2:你要导出的表的名称。
  • tables_backup.sql:导出文件的名称。

导出数据库结构(不包括数据)

如果你只想导出数据库的结构(即仅导出表定义,不包括数据),可以使用 --no-data 选项:

mysqldump -u username -p --no-data database_name > schema_backup.sql

导出数据库数据(不包括结构)

如果你只想导出数据库的数据(即仅导出表中的数据,不包括表定义),可以使用 --no-create-info 选项:

mysqldump -u username -p --no-create-info database_name > data_backup.sql

导出时添加额外选项

  • --add-drop-table:在每个表的创建语句之前添加一个 DROP TABLE IF EXISTS 语句。
mysqldump -u username -p --add-drop-table database_name > backup_with_drop.sql
  • --single-transaction:在导出过程中使用一个单一的事务,可以提高导出的一致性。
mysqldump -u username -p --single-transaction database_name > backup_single_transaction.sql

示例

假设你的 MySQL 用户名是 root,数据库名称是 mydb,表名称是 mytable,并且你想将导出的文件保存为 backup.sql

  1. 导出整个数据库:

    mysqldump -u root -p mydb > backup.sql
    
  2. 导出单个表:

    mysqldump -u root -p mydb mytable > mytable_backup.sql
    
  3. 导出多个表:

    mysqldump -u root -p mydb table1 table2 > tables_backup.sql
    

通过这些命令,你可以轻松地导出 MySQL 数据库或数据表的备份。

导入数据

将使用 mysqldump 导出的数据库或数据表插入到新的数据库中,可以通过 mysql 命令行工具将 .sql 文件导入到 MySQL 中。以下是具体步骤:

导入整个数据库

  1. 创建新数据库: 首先,在 MySQL 中创建一个新的数据库(如果还没有的话)。

    CREATE DATABASE new_database_name;
    
  2. 导入数据库: 使用 mysql 命令行工具将 .sql 文件导入到新的数据库中。

    mysql -u username -p new_database_name < backup.sql
    
    • username:你的 MySQL 用户名。
    • new_database_name:你要导入数据的新数据库名称。
    • backup.sql:之前导出的 SQL 文件。

导入单个数据表

  1. 创建新数据库: 如果尚未创建一个新的数据库,请先创建一个新的数据库。

    CREATE DATABASE new_database_name;
    
  2. 选择目标数据库: 确保新数据库存在并选择它:

    mysql -u username -p
    

    然后在 MySQL 命令行中选择新数据库:

    USE new_database_name;
    
  3. 导入数据表: 使用 mysql 命令行工具将 .sql 文件导入到新的数据库中。

    mysql -u username -p new_database_name < table_backup.sql
    
    • username:你的 MySQL 用户名。
    • new_database_name:你要导入数据的新数据库名称。
    • table_backup.sql:之前导出的表的 SQL 文件。

导入多个数据表

同样的步骤,可以导入多个数据表,只需要将包含多个表的 .sql 文件导入到新数据库中:

  1. 创建新数据库

    CREATE DATABASE new_database_name;
    
  2. 导入数据表

    mysql -u username -p new_database_name < tables_backup.sql
    

示例

假设你的 MySQL 用户名是 root,新数据库名称是 newdb,并且你有一个 SQL 文件 backup.sql,以下是导入过程的具体步骤:

  1. 创建新数据库:

    CREATE DATABASE newdb;
    
  2. 通过命令行导入整个数据库:

    mysql -u root -p newdb < backup.sql
    
  3. 如果你只有单个表的备份 mytable_backup.sql,导入单个表:

    mysql -u root -p newdb < mytable_backup.sql
    

通过这些步骤,你可以将使用 mysqldump 导出的数据库或数据表再次插入到新的数据库中。