基础学习
TiDB下载及运行
保证本地已经安装了go,git, mysql
- 从github将tidb代码clone到本地。
需要了解的知识:git clone.
注:如果clone太慢,可以先clone到码云上,再从码云clone到本地,实测飞快。 - 进入本地tidb目录,执行make server.
需要了解的知识:makefile.
注:第一次编译会从github及golang.org导入大量依赖包,耗时很长。可以使用阿里云的镜像。 - 编译完成后会生成bin目录,运行其中的tidb-server文件。
- 执行
mysql -h 127.0.0.1 -P 4000 -u root
,如果登陆成功,说明tidb已经成功启动。可以使用mysql命令测试。
使用dlv
安装 dlv 与 gdlv,gdlv是基于dlv实现的图形界面
调试的三种方式:
- dlv debug 源文件
- go build -gcflags="-N -l",然后dlv exec 二进制文件。
在tidb中BUILD_FLAG='-gcflags="-N -l"' make server
。 - dlv attach,还没有试。
- step, s:如果当前语句是函数调用,就进入子函数
- next, n, step over:如果当前语句是函数调用,直接将其执行完毕(视为普通语句)
- step out:当前函数执行完毕并返回。
自由总结
tidb是无状态的,仅负责把用户对sql的请求转换为对kv的请求,传给tikv.