由於 Synology NAS 內建僅提供 MairaDB,但我習慣用 MySQL,只好透過 Docker來安裝 MySQL,所幸 Synology 有提供 Docker 套件,在套件中心找到 Docker 並安裝,安裝完成後並執行 Docker。
- Docker 介面點選倉庫伺服器 輸入關鍵字 MySQL.
- 選擇 mysql 並點 下載. 跳出一個選擇標籤的視窗.
- 選擇 想要安裝的 mysql 版本. 下載後, Docker的映像檔區就會出現,例如: mysql:8.0.21 或者 latest 最新版本
- 安裝完後,在映像檔區選擇 mysql:8.0.21 並點佈署. 此時候會跳出 新增容器視窗.
點選進階設定.
- 在進階設定 勾選 啟用自動重啟 及 新增捷徑至桌面.
- 在儲存空間 新增 資料夾及相對應的掛載路徑 (主要用來對應到實際的檔案資料夾)
- 在連接埠設定 本機連接埠 及 容器連接埠
- 容器間連結, 此功能主要是將相關的容器連結一起, 在執行時同步一起執行.
- 環境設定, 佈署mysql時, 已經有部分環境變數預設, 不需要更動. 需要增加幾個設定.
# root 密碼
MYSQL_ROOT_PASSWORD YourPassWord
# 伺服器字元設定
character-set-server utf8mb4
# 資料表編碼
collation-server utf8mb4_unicode_ci
進階設定完成後, 選擇套用後, Docker精靈就會開始佈署 mysql.
一切安裝順利後, 點選左邊容器即可看到 mysql 已經自動執行中. (注意:此時的mysql尚無法連接使用)
Mysql on Docker 的設定
在容器中選擇已佈署完成並啟動的mysql, 並點選詳細資訊. 此時該mysql的視窗會跳出.
完成後, 透過phpmyadmin連線測試是否可以連線. (結果會發現無法連線,因為 MySQL 8 身分驗證插件改變成 caching_sha2_password 必須改成 mysql_native_password
點選終端機. 並按新增, 會多出一個 bash 選項, 點選 bash 進入終端機介面, 此時即可連線至mysql. 以下指令, 將root身分驗證方式改成 mysql_native_password.
# 執行 mysql -u root -p 指令 進入 MySQL
root#> use mysql;
root#> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'YourPassWord';
root#> flush privileges;
重新啟動後再透過phpmyadmin連線即可成功進入資料庫。