詳解Mysql Proxy Lua內部結構體以及變量
Mysql Proxy Lua內部結構體以及變量是本文要介紹的內容,主要是來學習Mysql Proxy的結構體和變量的應用,具體內容來看本文詳解。
Mysql Proxy的LUA配置腳本中可以使用很多內部結構,其中最主要的是proxy,proxy提供了很多其他的結構體的接口,比如連接列表,后端服務器列表等等。像incoming packet這樣的來自客戶的結構體只是在腳本函數上下文中存在。
屬性描述:
- connection:包含所有活動客戶的連接(proxy.connection )列表. .
- servers: 后臺服務器的列表( proxy.backends)
- queries:某一客戶要發送到服務器端的查詢
- PROXY_VERSION :Mysql Proxy版本,十六進制。
proxy.connection
proxy.connection 是只讀對象,提供了當前活動連接的信息
proxy.connection 屬性:
thread_id :連接的threadid
backend_ndx :當前連接所對應的后端服務器編號
proxy.backends
proxy.backends部分可寫的,包含了后臺服務器以及服務器meta信息的列表 ,你可以指定當前連接使用那個后臺服務器。
proxy.backends 屬性:
address: 當前連接的主機名/端口組合
connected_clients:目前已連接的客戶數
state:后臺服務器的狀態
proxy.queries
proxy.queries是一個要送往服務器的查詢隊列,
- The queue is not populated automatically, but if you do not explicitly populate the queue then queries are
- passed on to the backend server verbatim. Also, if you do not populate the query queue by hand,
- then the read_query_result() function is not triggered.
- The following methods are supported for populating the proxy.queries object.
函數描述:
- append(id,packet) 添加到隊尾。
- prepend(id,packet) 插入隊頭。
- len() 返回查詢的隊列長度
以下常量Mysql Proxy用來客戶指定操作:
- PROXY_SEND_QUERY 發送查詢給服務器.
- PROXY_SEND_RESULT 返回客戶端查詢結果
- PROXY_IGNORE_RESULT 丟棄結果集
包狀態常量:
- MYSQLD_PACKET_OK The packet is OK.
- MYSQLD_PACKET_ERR The packet contains error information.
- MYSQLD_PACKET_RAW The packet contains raw data.
后臺狀態常量:
- BACKEND_STATE_UNKNOWN The current status is unknown.
- BACKEND_STATE_UP The backend is known to be up (available).
- BACKEND_STATE_DOWN The backend is known to be down (unavailable).
- BACKEND_TYPE_UNKNOWN Backend type is unknown.
- BACKEND_TYPE_RW Backend is available for read/write.
- BACKEND_TYPE_RO Backend is available only for read-only use.
- 服務器命令常量:
- Constant Description
- COM_SLEEP Sleep
- COM_QUIT Quit
- COM_INIT_DB Initialize database
- COM_QUERY Query
- COM_FIELD_LIST Field List
- COM_CREATE_DB Create database
- COM_DROP_DB Drop database
- COM_REFRESH Refresh
- COM_SHUTDOWN Shutdown
- COM_STATISTICS Statistics
- COM_PROCESS_INFO Process List
- COM_CONNECT Connect
- COM_PROCESS_KILL Kill
- COM_DEBUG Debug
- COM_PING Ping
- COM_TIME Time
- COM_DELAYED_INSERT Delayed insert
- COM_CHANGE_USER Change user
- COM_BINLOG_DUMP Binlog dump
- COM_TABLE_DUMP Table dump
- COM_CONNECT_OUT Connect out
- COM_REGISTER_SLAVE Register slave
- COM_STMT_PREPARE Prepare server-side statement
- COM_STMT_EXECUTE Execute server-side statement
- COM_STMT_SEND_LONG_DATA Long data
- COM_STMT_CLOSE Close server-side statement
- COM_STMT_RESET Reset statement
- COM_SET_OPTION Set option
- COM_STMT_FETCH Fetch statement
- COM_DAEMON Daemon (MySQL 5.1 only)
- COM_ERROR Error
MySQL數據類型
- Constant Field Type
- MYSQL_TYPE_DECIMAL Decimal
- MYSQL_TYPE_NEWDECIMAL Decimal (MySQL 5.0 or later)
- MYSQL_TYPE_TINY Tiny
- MYSQL_TYPE_SHORT Short
- MYSQL_TYPE_LONG Long
- MYSQL_TYPE_FLOAT Float
- MYSQL_TYPE_DOUBLE Double
- MYSQL_TYPE_NULL Null
- MYSQL_TYPE_TIMESTAMP Timestamp
- MYSQL_TYPE_LONGLONG Long long
- MYSQL_TYPE_INT24 Integer
- MYSQL_TYPE_DATE Date
- MYSQL_TYPE_TIME Time
- MYSQL_TYPE_DATETIME Datetime
- MYSQL_TYPE_YEAR Year
- MYSQL_TYPE_NEWDATE Date (MySQL 5.0 or later)
- MYSQL_TYPE_ENUM Enumeration
- MYSQL_TYPE_SET Set
- MYSQL_TYPE_TINY_BLOB Tiny Blob
- MYSQL_TYPE_MEDIUM_BLOB Medium Blob
- MYSQL_TYPE_LONG_BLOB Long Blob
- MYSQL_TYPE_BLOB Blob
- MYSQL_TYPE_VAR_STRING Varstring
- MYSQL_TYPE_STRING String
- MYSQL_TYPE_TINY Tiny (compatible with MYSQL_TYPE_CHAR)
- MYSQL_TYPE_ENUM Enumeration (compatible with MYSQL_TYPE_INTERVAL)
- MYSQL_TYPE_GEOMETRY Geometry
- MYSQL_TYPE_BIT Bit
小結:詳解Mysql Proxy Lua內部結構體以及變量的內容介紹完了,希望通過本文的學習能對你有所幫助!