PDF (美式信紙) - 420.5Kb
PDF (A4) - 419.3Kb
MySQL 包含一個測試協定追蹤外掛程式,其作用是說明此類外掛程式可取得的資訊,並作為編寫其他協定追蹤外掛程式的指南。若要查看測試外掛程式的運作方式,請使用 MySQL 原始碼散佈;二進位散佈版本在建置時已停用測試外掛程式。
透過啟用 WITH_TEST_TRACE_PLUGIN
CMake 選項來設定 MySQL,以啟用測試協定追蹤外掛程式。這會導致建置測試追蹤外掛程式,並讓 MySQL 用戶端程式載入它,但預設情況下,外掛程式不會產生任何作用。使用下列環境變數來控制外掛程式
MYSQL_TEST_TRACE_DEBUG
:將此變數設定為 0 以外的值,以讓測試外掛程式在stderr
上產生診斷輸出。MYSQL_TEST_TRACE_CRASH
:將此變數設定為 0 以外的值,以讓測試外掛程式在偵測到無效的追蹤事件時中止用戶端程式。
注意
測試協定追蹤外掛程式的診斷輸出可能會洩漏密碼和其他敏感資訊。
假設已從原始碼建置並啟用測試外掛程式的 MySQL 安裝,您可以按照以下方式查看 mysql 用戶端與 MySQL 伺服器之間的通訊追蹤
$> export MYSQL_TEST_TRACE_DEBUG=1
shqll> mysql
test_trace: Test trace plugin initialized
test_trace: Starting tracing in stage CONNECTING
test_trace: stage: CONNECTING, event: CONNECTING
test_trace: stage: CONNECTING, event: CONNECTED
test_trace: stage: WAIT_FOR_INIT_PACKET, event: READ_PACKET
test_trace: stage: WAIT_FOR_INIT_PACKET, event: PACKET_RECEIVED
test_trace: packet received: 87 bytes
0A 35 2E 37 2E 33 2D 6D 31 33 2D 64 65 62 75 67 .5.7.3-m13-debug
2D 6C 6F 67 00 04 00 00 00 2B 7C 4F 55 3F 79 67 -log.....+|OU?yg
test_trace: 004: stage: WAIT_FOR_INIT_PACKET, event: INIT_PACKET_RECEIVED
test_trace: 004: stage: AUTHENTICATE, event: AUTH_PLUGIN
test_trace: 004: Using authentication plugin: mysql_native_password
test_trace: 004: stage: AUTHENTICATE, event: SEND_AUTH_RESPONSE
test_trace: 004: sending packet: 188 bytes
85 A6 7F 00 00 00 00 01 21 00 00 00 00 00 00 00 .?......!.......
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
...
mysql> quit
test_trace: 008: stage: READY_FOR_COMMAND, event: SEND_COMMAND
test_trace: 008: QUIT
test_trace: 008: stage: READY_FOR_COMMAND, event: PACKET_SENT
test_trace: 008: packet sent: 0 bytes
test_trace: 008: stage: READY_FOR_COMMAND, event: DISCONNECTED
test_trace: 008: Connection closed
test_trace: 008: Tracing connection has ended
Bye
test_trace: Test trace plugin de-initialized
若要停用追蹤輸出,請執行以下動作
$> MYSQL_TEST_TRACE_DEBUG=