MySQL: 疑難排解

MySQL 常見問題及解決方案

👋 歡迎瀏覽 Stackhero 文件!

Stackhero 提供全託管的 MySQL cloud 服務,讓生產環境的部署與管理變得更簡單:

  • 無限連線及數據傳輸。
  • 內建 phpMyAdmin 網頁介面,輕鬆管理資料庫。
  • 一鍵升級,更新無煩惱。
  • 專屬私有基礎設施上,確保穩定效能高度安全

使用 Stackhero,您只需幾分鐘即可擁有可靠的 MySQL 資料庫。減少安裝與維護的時間,專注於開發您的應用程式。立即體驗 Stackhero 的 MySQL cloud hosting

如果您在使用 phpMyAdmin 時遇到超時問題,可能是因為處理大量數據。由於 phpMyAdmin 是基於 PHP 運行的,它可能在處理長時間請求或大型數據導出時遇到困難。為了管理更複雜的查詢,您可以考慮使用 MySQL 命令行界面或非網頁客戶端。

MySQL 8 預設使用 caching_sha2_password 認證系統。當使用較舊的客戶端庫時,您可能會遇到錯誤:"Authentication plugin 'caching_sha2_password' cannot be loaded"。要解決此問題,您可以將預設認證方法修改為使用 MySQL native password。

在您的 Stackhero 儀表板中,導航到 MySQL 配置部分,選擇 "MySQL native password" 作為認證插件。此設置會影響 root 用戶和任何新創建的用戶。

對於現有用戶(不包括 root 用戶),您可以使用 MySQL 命令行界面或 phpMyAdmin 執行以下命令:

USE mysql;
ALTER USER '<userToUpdate>'@'%' IDENTIFIED WITH mysql_native_password BY '<userPassword>';
FLUSH PRIVILEGES;

如果您遇到錯誤 "ERROR 2026 (HY000): SSL connection error: unknown error number",通常表示您的客戶端不支持現代 TLS 版本。Stackhero 的 MySQL 實例配置為僅支持最新的 TLS 協議和加密,以增強安全性。

如果您的客戶端嘗試使用 TLS v1.1,這個錯誤可能會發生,因為它已過時且不被現代 MySQL 和 MariaDB 版本支持。為了解決此問題,您可能需要升級您的 MySQL 客戶端到支持最新 TLS 協議的版本。

如果您不小心修改了權限、更改了密碼或刪除了 "root" 用戶,您可以重新啟動您的 MySQL 實例。這樣做會自動重新創建 root 用戶並設置正確的密碼和權限。

當從 MySQL 表中刪除數據時,其佔用的磁碟空間不會立即回收。要回收這些空間,您可以執行以下命令:

OPTIMIZE TABLE <table>;

此過程會創建一個臨時表,將數據轉移到其中,然後替換原始表。在優化過程中,表將被鎖定並暫時不可用。鎖定的持續時間和總所需時間取決於表的大小。由於此操作資源密集,建議在伺服器活動較低的時段安排,以盡量減少對性能和可用性的影響。