在這篇文章中,我將分享使用 MySQL 將本機 MySQL 資料庫中的資料移轉到 AWS RDS 上新建立的執行個體的詳細步驟。
我在 2023 年參與了一個全端項目,手動處理資料庫和後端到 AWS 的生產部署。今年早些時候,我關閉了所有基礎設施,因為我每月在資料庫上累積了太多成本(不感謝我的過度配置)。
現在,快進到這個月,我仍然有大量 AWS 積分(作為社區建構者的福利)將於今年年底到期。我試著恢復我的項目,卻發現它並不像我想像的那麼容易。
首先,我沒有正確建立可用於復原生產資料的快照,並且不斷出現存取錯誤。我還想起了整個部署過程是多麼令人痛苦的手動操作,以及我如何沒有記錄我所採取的任何步驟(我也不記得它們)。
這是一個教訓,所以這次,我記錄了整個過程。正如我從未完成的 Udemy 課程中的一句話:
「在繼續自動化之前,您必須知道如何手動執行任務」。
因此,我將首先分享我手動執行遷移的步驟,在接下來的文章中,我將編寫腳本來使用 Terraform 提供基礎設施,並在成功後將本地資料轉儲到遠端資料庫中發射。
這也是我自己分配的正在進行的專案的一部分,旨在透過建置管道來自動化整個專案的部署來了解有關 CI/CD 的更多資訊。
這次的配置更加用心和實用。儘管這是一個“生產部署”,但我仍然選擇了可能是最便宜的運行成本,因為它不是實際的即時產品(這也影響了我選擇不添加的一些安全選項)。
我總結了我在「建立資料庫」精靈中選擇的選項,如下:
AWS Region: eu-west-2 Database creation method: Standard Create Engine type/edition/version: MySQL/MySQL Community/MySQL 8.0.35 Use case template: Free Tier Credential settings: define these as you'd prefer DB instance class: db.t3.micro Storage: gp2, 20GB, auto-scaling enabled up to 100GB Connectivity: - define these for your specific use-case; I chose not to use an EC2 - Public access: Yes, because I wanted to connect to the database locally via MySQL Workbench Database authentication: Password auth Additional configuration: - I created one database from here; but you can also leave it blank and create one when you get access via Workbench Others: - use default options or modify for your use-case Deletion protection: - enabled (to dissuade myself from deleting easily like the last time)
預計每月費用:
實例啟動成功後,使用mysql客戶端連線實例。這假設您已安裝並執行 MySQL 伺服器。
MySQL 入門
MySQL 客戶端
您還需要實例端點以及您在憑證設定中定義的使用者名稱和密碼來執行此命令:
mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p
注意:您的執行個體將使用所選 VPC 安全群組的正確入站和出站規則建立。
但是,如果您在連線時遇到錯誤,請確認您的 IP 位址包含在入站規則的允許來源中。當我在特定位置使用其 IP 位址建立實例時,我遇到了類似的問題,當我嘗試使用另一個位置的不同 IP 位址連接時,連接逾時。
[選用] 建立資料庫
如果您在建立實例時跳過了附加設定步驟,您可以在此步驟建立一個:
CREATE DATABASE sample_db;
為此,您首先需要使用 mysqldump 指令將本機資料庫中的架構和資料匯出到 .sql 轉儲檔:
mysqldump -u root -p local_db_name > sample_dump.sql
注意:如果您在嘗試匯出時遇到錯誤,請查看我在 Stack Overflow 上的問題以及可以解決一些可能問題的答案。
然後,使用 mysql 指令將轉儲檔案匯入到您的 RDS 實例中:
mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p sample_db < sample_dump.sql
確認您能夠毫無問題地連接到實例,並檢查資料庫內的架構和資料以確認它們也已正確匯入。
接下來是:
以上是將本機 MySQL 資料庫遷移到 AWS RDS的詳細內容。更多資訊請關注PHP中文網其他相關文章!