由於 Synology NAS 內建僅提供 MairaDB,但我習慣用 MySQL,只好透過 Docker來安裝 MySQL,所幸 Synology 有提供 Docker 套件,在套件中心找到 Docker 並安裝,安裝完成後並執行 Docker。

  1. Docker 介面點選倉庫伺服器 輸入關鍵字 MySQL.
  2. 選擇 mysql 並點 下載. 跳出一個選擇標籤的視窗.
  3. 選擇 想要安裝的 mysql 版本. 下載後, Docker的映像檔區就會出現,例如: mysql:8.0.21 或者 latest 最新版本
  4. 安裝完後,在映像檔區選擇 mysql:8.0.21 並點佈署. 此時候會跳出 新增容器視窗.

點選進階設定.

  1. 在進階設定 勾選 啟用自動重啟 及 新增捷徑至桌面.
  2. 在儲存空間 新增 資料夾及相對應的掛載路徑 (主要用來對應到實際的檔案資料夾)
  3. 在連接埠設定 本機連接埠 及 容器連接埠
  4. 容器間連結, 此功能主要是將相關的容器連結一起, 在執行時同步一起執行.
  5. 環境設定, 佈署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連線即可成功進入資料庫。

最後修改日期: 2020 年 10 月 3 日