之前也是看过官方文档上面关于client server协议的介绍,总是感觉比较晦涩,看过不久就会忘记,所以写了代码验证理解下。之前写过系统表空间文件解析,感觉通讯协议跟数据存储的解析差不多,都是通过规定的方式将字节数组转化成对应的数据。编写了一个go 版本的mysql客户端,数据都是采用的最简单的。 代码链接如下。
效果如下
go run main.go -h 127.0.0.1. -p 20996 Welcome to the Go MySQL CLI. Commands end with ; Type your command > select * from test.dba_test; Type your command > id |name |sex |c |d |d1 |d2 | 4 ii null null null null null 5 dd null null null null null 6 dd null null null null null 7 dd null null null null null 8 dd null null null null null 5 dd null null null null null 90 aa null null null null null 11 rr null null null null null 12 gg null null null null null 13 cc null null null null null 15 ddd null null null null null 15 ddd null null null null null 16 cccc null null null null null Type your command > exit
