Mysql

將 MySQL 8.0.20 數據庫遷移到 AWS Aurora

  • November 30, 2021

我最初在堆棧溢出上發布了這個問題,因為我不知道這項服務存在,有人建議我可能會在這裡得到更好的答案。

我嘗試使用AWS RDS 代理服務並意識到與該服務唯一兼容的版本是 AWS Aurora 數據庫/集群。

我擁有的目前數據庫是使用 MySQL 8.0.20 版本的 MySQL 數據庫。AWS Aurora 與 MySQL 兼容,但僅適用於 5.6 和 5.7 版本。我不太熟悉這些版本以及它與版本 8.0.20 的不同之處。

有沒有人經歷過將 MySQL 數據庫轉換為 Aurora 的過程?我知道那裡有關於該主題的文件,但它們處理版本 5.6 或 5.7,有人為以後的版本做過嗎?

我在 SQL 文件中擁有所有 MySQL 程式碼以及儲存過程,因此可以在一定程度上自動創建數據庫,如果有人遇到問題/找到比執行多個 SQL 文件傳輸更好的方法數據。

如果您已經完成了該過程,那麼 MySQL 和 Aurora 在執行儲存過程等方面是否存在重大差異?

編輯

只是為了提供一些背景知識,這個問題是我遷移到 Aurora 的最初原因,因為它似乎有更好的管理連接池的服務https://stackoverflow.com/questions/67600414/should-i-use-connection -pooling-in-aws-lambda

從 8.0 回退的最大潛在問題:

  • CTE
  • 視窗函式
  • 新點心
  • 通過嘗試傳輸可以最好地找到各種細微的語法更改。

如果您不使用這些,mysqldump 可能會生成一個可由 5.6 或 5.7 讀取的文件。嘗試一下。如果失敗,請返回詳細資訊。

MySQL 和 Aurora 之間的一個主要區別是 Aurora 僅在 AWS 雲中執行。您無法在任何其他託管環境、開發筆記型電腦或工作站或嵌入式設備等上執行 Aurora。如果您使用 Aurora,您將無法使用 AWS。

此外,Aurora 與 MySQL 5.7 不完全兼容。亞馬遜幾年前分叉了 MySQL 5.7,因此您期望看到的 MySQL 5.7 的某些功能並未在 Aurora 中實現。例如,我發現函式JSON_ARRAYAGG() 和 JSON_OBJECTAGG()直到 Aurora 2.10.1 才實現。

Aurora 發行說明還用於記錄他們不支持的 MySQL 5.7 功能列表。他們在 2018 年通過 2.02.3 版在 Aurora 發行說明中發布了這一點,但在那之後他們停止了。

底線是 Aurora 不是 MySQL。它是一種兼容的,但除了例外情況,它們可能會或可能不會記錄。

引用自:https://dba.stackexchange.com/questions/291846