配置與最佳化 ServBay 中的 MySQL 資料庫設定
ServBay 內建 MySQL 資料庫,並提供彈性的設定選項,讓開發者可依專案需求自由調整。本文將詳細介紹如何修改 ServBay 中 MySQL 的各項設定,包含推薦的 UI 圖形操作方式、設定檔位置以及常見設定參數。
根據安裝的 MySQL 版本不同,其相關設定檔案與資料檔通常位於 ServBay 安裝目錄(預設為 /Applications/ServBay
)下的特定子目錄。
重要提示
ServBay 透過圖形使用者介面 (UI) 管理多數套件及服務的設定。強烈建議您透過 ServBay UI 介面進行所有設定調整。 ServBay 會自動產生並管理設定檔,若直接手動修改檔案,您的變更可能於 ServBay 更新或重啟時被覆蓋而導致設定遺失。手動調整僅建議用於暫時性測試或除錯。
推薦:透過 ServBay UI 介面進行設定
ServBay 提供強大的圖形化管理介面,開發者可直接在此處調整各項設定參數。經由 UI 變更的設定會自動套用,並於儲存後立即生效,大幅簡化調整流程,也避免手動編輯檔案可能出現的錯誤。
如欲調整 MySQL 設定,請開啟 ServBay 應用程式,於左側導覽列依序點選 資料庫 → MySQL,再選擇您要設定的 MySQL 版本。
在圖形化設定頁面中,您可以檢視與調整多項關鍵設定:
- 預設用戶及密碼: 可查詢 ServBay 為您配置的 MySQL 預設使用者名稱(通常為
root
)及對應密碼。 - 監聽位址(
bind-address
)與埠號(port
): 預設為0.0.0.0:3306
,意即 MySQL 於所有可用網路介面的 3306 埠上監聽。您可依需求調整監聽位址(例如改為127.0.0.1
只允許本機連線)或更換埠號以避免與其他服務衝突。 - 慢查詢日誌(
slow query log
): 可輕鬆啟用慢查詢日誌,協助您識別執行效率較差的 SQL 查詢。 - 連線數(
max_connections
): 調整資料庫允許的最大同時連線數。 - 允許的最大資料包大小(
max_allowed_packet
): 設定伺服器可接收的最大資料包,影響單條 SQL 或單筆資料的最大長度。 - 其他常用設定: UI 通常會揭露其他常見的調整選項供使用者設置。
修改完畢後,請點擊畫面下方的 儲存 按鈕。ServBay 會自動套用您的變更,必要時自動重啟 MySQL 服務以讓設定立即生效。
參考:手動編輯 MySQL 設定檔(不建議)
儘管不建議這麼做,了解 MySQL 設定檔位置對於進行進階除錯或臨時變更仍然有其價值。
WARNING
再次提醒: 手動修改 ServBay 自動生成的設定檔並不建議。ServBay UI 或後續版本更新可能覆蓋您的手動調整。如需永久性設定,請優先使用 ServBay 圖形介面。手動變更僅適用於暫時用途。
簡介
在 ServBay 中,MySQL 設定檔依不同版本區分,這些檔案存放於 ServBay 安裝路徑下的特定目錄。
設定檔路徑
主要的 MySQL 設定檔 my.cnf
位置為:
my.cnf
:/Applications/ServBay/etc/mysql/<version>/my.cnf
其中 <version>
請填入您安裝的 MySQL 實際版本號,例如 8.0
或 9.0
。
my.cnf
my.cnf
是 MySQL 伺服器的主要設定檔,包含控制資料庫行為的各項參數。
常見設定範例
以下為 my.cnf
中常見設定項目及簡要說明。這些為示意用途,實際操作請謹慎小心。
修改監聽位址 (
bind-address
): 控制 MySQL 實例監聽哪個網路介面。0.0.0.0
表示監聽所有介面,127.0.0.1
則只監聽本機回圈位址。ini[mysqld] bind-address = 0.0.0.0
1
2更改埠號 (
port
): MySQL 服務所使用的網路連接埠。預設為3306
。ini[mysqld] port = 3306
1
2調整最大連線數 (
max_connections
): 資料庫允許的最大同時連線客戶端數,可依應用程式負載進行調整。ini[mysqld] max_connections = 200
1
2InnoDB 緩衝池大小設定 (
innodb_buffer_pool_size
): InnoDB 儲存引擎用於快取資料與索引的記憶體空間。這是影響 InnoDB 效能的關鍵參數,建議設為系統記憶體的 50%-70%。ini[mysqld] innodb_buffer_pool_size = 256M
1
2設定錯誤日誌檔案位置 (
log_error
): 指定 MySQL 錯誤日誌的檔案路徑,用於記錄啟動、運作期間的錯誤和警告。ini[mysqld] log_error = /Applications/ServBay/logs/mysql/error.log
1
2啟用慢查詢日誌 (
slow_query_log
): 啟用後,MySQL 會將執行時間超過long_query_time
設定的 SQL 查詢記錄於指定日誌檔,方便性能分析。ini[mysqld] slow_query_log = 1 slow_query_log_file = /Applications/ServBay/logs/mysql/slow.log long_query_time = 2 # 以秒為單位,記錄執行超過 2 秒的查詢
1
2
3
4設定預設字元集與排序規則 (
character-set-server
,collation-server
): 決定伺服器的預設字元集與排序方式,影響資料庫、資料表及欄位的字串處理。建議使用utf8mb4
,可完整支援 Unicode 和 Emoji。ini[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
1
2
3
手動調整後的操作
如您確實進行了手動設定(只建議作臨時測試用),請務必重新啟動 MySQL 服務以使設定生效。
重新啟動 MySQL 服務
無論您是透過 UI 還是手動修改設定,通常皆需重啟 MySQL 服務以套用新參數。
透過 ServBay 管理介面重新啟動
- 開啟 ServBay 管理介面。
- 於左側導覽欄選擇 軟體包。
- 在軟體包清單中找到對應版本的 MySQL,點擊其旁的 重啟 按鈕即可。
透過 servbayctl
指令列工具重新啟動
您也可使用 ServBay 提供的命令列工具 servbayctl
快速管理服務。
請開啟終端機,執行下列指令(將 9.0
改為實際使用的 MySQL 版本號):
servbayctl restart mysql 9.0
常見問題 (FAQ)
Q: 我手動改了
my.cnf
為什麼沒生效?A: 請確認您已重啟 MySQL 服務。另外,若 ServBay UI 正在執行或內部進行管理,您手動變更的檔案可能已被 ServBay 所覆蓋。強烈建議使用 ServBay UI 進行所有設定修改。
Q: 修改後 MySQL 無法啟動怎麼辦?
A: 多半是設定檔語法錯誤所致。若您手動修改過,請檢查
my.cnf
是否有誤。可檢查看錯誤日誌(如/Applications/ServBay/logs/mysql/error.log
,實際路徑依版本而異)。若問題仍無法排除,請移除手動更動、恢復至 ServBay UI 管理狀態,僅透過 UI 再次進行修改。Q: 忘記 ServBay MySQL 的 root 密碼怎麼辦?
A: 可於 ServBay UI 的 MySQL 設定頁查詢當前 root 預設密碼。若需重設密碼,ServBay 新版多提供 UI 操作快速設置(支援 MySQL、MariaDB、PostgreSQL)。具體操作步驟請參考 ServBay 關於資料庫密碼管理之說明文件。
總結
在 ServBay 中調整 MySQL 資料庫設定機制靈活。建議優先透過 ServBay 圖形介面管理,保障設定的正確性與持久性。雖然可參考 /Applications/ServBay/etc/mysql/<version>/my.cnf
檔案了解細節,但手動調整不適合長期用於生產。無論採用何種方式,設定變更後都建議重啟 MySQL 服務,使之生效。掌握這些設定,有助於您優化本機 ServBay 環境下的資料庫效能。