如何在 MySQL 或 MariaDB 中導入和導出資料庫

介紹

在軟體開發中,導入和導出數據庫是一個常見的任務。您可以使用數據備份來備份和還原您的信息。您還可以使用它們將數據遷移到新的服務器或開發環境中。

在本教程中,您將使用 MySQL 或 MariaDB(命令可互換)中的數據庫備份。具體來說,您將導出一個數據庫,然後從備份文件中導入該數據庫。

使用 DigitalOcean Managed Databases 一鍵部署數據庫。讓 DigitalOcean 專注於為您的數據庫進行擴展、維護和升級。

先決條件

要導入或導出 MySQL 或 MariaDB 數據庫,您需要:

注意:作為手動安裝的替代方案,您可以探索DigitalOcean Marketplace的MySQL一鍵應用程式

步驟1 — 匯出MySQL或MariaDB數據庫

mysqldump控制台實用程序將數據庫匯出為SQL文本文件。這樣可以更輕鬆地傳輸和移動數據庫。您將需要您數據庫的名稱和帳戶憑據,這個帳戶的權限至少需要完全的只讀訪問權限到數據庫。

使用mysqldump導出您的數據庫:

  1. mysqldump -u username -p database_name > data-dump.sql
  • username是您可以使用的數據庫的用戶名
  • database_name是要導出的數據庫的名稱
  • data-dump.sql是存儲輸出的當前目錄中的文件。

該命令將不會產生可視輸出,但您可以檢查data-dump.sql的內容,以確保它是一個合法的SQL匯出文件。

運行以下命令:

  1. head -n 5 data-dump.sql

文件頂部應該類似於此,顯示了一個名為database_name的數據庫的MySQL匯出。

SQL dump fragment
-- MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64) -- -- 主機:localhost 數據庫:database_name -- ------------------------------------------------------ -- 服務器版本 5.7.16-0ubuntu0.16.04.1

如果在导出过程中发生任何错误,mysqldump 会将它们打印到屏幕上。

步骤2 — 导入 MySQL 或 MariaDB 数据库

要将现有的转储文件导入到 MySQL 或 MariaDB,您将需要创建一个新的数据库。这个数据库将保存导入的数据。

首先,以 root 或具有足够权限创建新数据库的其他用户身份登录到 MySQL:

  1. mysql -u root -p

此命令将带您进入 MySQL shell 提示符。接下来,使用以下命令创建一个新的数据库。在本例中,新数据库被称为 new_database

  1. CREATE DATABASE new_database;

您将看到此输出确认数据库创建。

Output
Query OK, 1 row affected (0.00 sec)

然后通过按下 CTRL+D 退出 MySQL shell。从正常的命令行,您可以使用以下命令导入转储文件:

  1. mysql -u username -p new_database < data-dump.sql
  • username 是您可以使用登录到数据库的用户名
  • newdatabase 是新创建的数据库的名称
  • data-dump.sql 是要导入的数据转储文件,位于当前目录

如果命令成功运行,它将不会生成任何输出。如果在过程中发生任何错误,mysql 将会将它们打印到终端。要检查导入是否成功,请登录到 MySQL shell 并检查数据。使用 USE new_database 选择新数据库,然后使用 SHOW TABLES; 或类似的命令查看一些数据。

结论

在本教程中,您从 MySQL 或 MariaDB 数据库创建了一个数据库转储。然后将该数据转储导入到了一个新数据库中。mysqldump 还有其他设置,您可以使用这些设置来更改系统创建数据转储的方式。您可以从官方 mysqldump 文档页面了解更多信息。

要了解更多关于 MySQL 的信息,请查看我们的MySQL 资源页面

要了解更多关于 MySQL 查询的信息,请查看我们的教程“MySQL 查询入门”

作者选择了自由开源基金作为Write for DOnations计划的一部分进行捐赠。

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-and-export-databases-in-mysql-or-mariadb