MySQL 資料庫快速備份

最近因為有一個系統需要搬家,所以需要備份資料庫,因此就來寫一個可以快速備份資料庫的文讓大家如果需要快速備份資料庫可以用。

備份資料庫

先使用 SSH 登入機器然後使用 mysqldump 備份,備份前首先先準備以下幾項:

  • 使用者帳號
  • 使用者密碼
  • 資料庫名稱

範例使用帳號 user 密碼 pass 資料庫 database

mysqldump -h 127.0.0.1 -u user -p database --no-tablespaces > backup.sql;

如此就可以把資料庫備份做成 backup.sql

匯入資料庫

一樣使用 SSH 登入要倒入資料的那台機器,然後使用指令登入資料庫,如果是 root 使用者正常來說可以直接使用 sudo mysql 登入資料庫,登入後出現

$ sudo mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 249
Server version: 8.0.23-0ubuntu0.20.04.1 (Ubuntu)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

建立資料庫

首先我們需要建立資料庫與使用者並把備份檔倒進去

CREATE DATABASE database CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

建立使用者

建立使用者並給予整個資料庫的權限

CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass';
ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass';
GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost';

刷新系統權限與使用者資料表

FLUSH PRIVILEGES;

倒入資料

最後把剛剛備份過來的檔案直接倒進去就完成了!

mysql -u user -p database < backup.sql