全部產品
Search
文件中心

Lindorm:MySQL協議開發說明

更新時間:Jul 06, 2024

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_passwordmysql_native_password鑒權協議,建議您優先使用caching_sha2_password協議。

    例如,您在寬表引擎為2.5.4版本時建立了使用者user,之後通過升級小版本的方式將寬表引擎升級至2.6.2及以上版本,並建立了新的使用者test,則user使用者僅支援caching_sha2_password協議,test使用者支援mysql_native_passwordcaching_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複製協議。