Lindorm寬表引擎支援MySQL協議接入,您可以通過MySQL生態用戶端來串連並使用Lindorm寬表引擎。本文介紹MySQL協議使用說明及相關注意事項。
使用說明
寬表引擎為2.6.0及以上版本時支援MySQL協議。如何查看或升級目前的版本,請參見寬表引擎版本說明和升級小版本。
Lindorm寬表引擎支援的SQL文法不完全相容MySQL文法。Lindorm寬表引擎支援的SQL文法,請參見SQL文法手冊。
開通指南
如何開通MySQL相容協議功能,請參見通過MySQL命令列串連並使用寬表引擎。
注意事項
出於安全性考慮,在使用MySQL協議串連寬表引擎時,預設使用SSL通訊加密。如果您的應用與Lindorm執行個體部署在同一個Virtual Private Cloud下,您可以按照MySQL用戶端的使用方式啟用明文通訊以獲得更好的效能。例如,使用8.x版本的MySQL JDBC時,可以在串連URL中設定
sslMode=disabled
來啟用明文通訊。部分舊用戶端在建立SSL串連時會使用較低版本的TLS協議(例如1.0或1.1版本),可能會導致串連失敗並引發協議版本相關的異常。如果出現此情況,您可以通過以下方式處理:
直接使用明文通訊建立串連。
如果對應的用戶端支援指定TLS協議版本(例如5.1.44版本的MySQL JDBC支援通過enabledTLSProtocols串連參數指定TLS版本),則可以通過將TLS協議版本指定為1.2解決該問題。
升級用戶端版本。建議使用MySQL 8.0及以上版本的用戶端。
不同寬表引擎版本下建立的使用者可使用的協議不同。請根據您的實際情況,選擇對應的鑒權協議:
如果使用者建立時,寬表引擎版本在2.6.2之前,則僅支援
caching_sha2_password
協議。如果使用者建立時,寬表引擎為2.6.2及以上版本,同時支援
caching_sha2_password
和mysql_native_password
鑒權協議,建議您優先使用caching_sha2_password
協議。
例如,您在寬表引擎為2.5.4版本時建立了使用者user,之後通過升級小版本的方式將寬表引擎升級至2.6.2及以上版本,並建立了新的使用者test,則user使用者僅支援
caching_sha2_password
協議,test使用者支援mysql_native_password
和caching_sha2_password
鑒權協議。
MySQL協議相容
MySQL協議中包含多種子協議,Lindorm對於其支援情況如下:
串連生命週期 | 子協議名稱 | 協議命令 | 是否支援 | 功能及說明 |
Connection Phase | Handshake | 支援 | 建立串連前的握手協商。目前僅支援HandshakeV10協議。 | |
TLS Support | 支援 | TLS通訊加密支援。目前僅支援TLSv1.2協議。 說明 Lindorm預設使用SSL加密通訊。 | ||
Authentication Methods | old_password | 不支援 | 舊版本密碼傳輸協議。即舊版本MySQL用戶端(例如4.x或更舊版本)的使用者認證請求。 | |
mysql_clear_password | 支援 | 純文字密碼傳輸協議。 重要 通常需要與SSL通訊加密配合使用。 | ||
mysql_native_password | 支援 | 5.x版本MySQL用戶端預設使用的密碼加密通訊協定。 | ||
caching_sha2_password | 支援 | 8.x版本MySQL用戶端預設使用的密碼加密通訊協定。相較mysql_native_password更加安全高效,推薦使用。 | ||
Command Phase | Text Protocol | COM_QUERY | 支援 | 直接發送SQL並執行。 |
Utility Commands | COM_QUIT | 支援 | 串連斷開。 | |
COM_INIT_DB | 支援 | 修改當前串連的預設資料庫。 | ||
COM_PING | 支援 | 用戶端與服務端之間的串連探活。 | ||
COM_DEBUG | 不支援 | 顯示伺服器內部Debug資訊,即串連Lindorm後在執行SQL的同時擷取服務端調試資訊。 | ||
COM_CHANGE_USER | 不支援 | 切換當前串連的使用者。 | ||
COM_RESET_CONNECTION | 不支援 | 串連Lindorm時重設當前串連的工作階段狀態。 | ||
COM_SET_OPTION | 不支援 | 設定用戶端的串連選項,即串連Lindorm時更改用戶端串連會話的行為與配置。 | ||
Prepared Statements | COM_STMT_PREPARE | 支援 | 參數化查詢語句預先處理。 | |
COM_STMT_EXECUTE | 支援 | 參數化查詢語句的參數綁定與執行。 | ||
COM_STMT_FETCH | 不支援 | 對Lindorm使用嵌入式SQL中的FETCH語句。 | ||
COM_STMT_CLOSE | 支援 | 關閉預先處理語句。 | ||
COM_STMT_SEND_LONG_DATA | 不支援 | 用於發送大對象的命令,在COM_STMT_EXECUTE前執行。 | ||
Replication Protocol | 不支援 | MySQL的Binlog複製協議。 |