TIDB 初级课程体验 6 (使用和连接TIDB,与参数配置)
TIDB 之所以能流行,主要的原因是兼容性,TIDB在设计之初就使用了兼容MYSQL的语法,让目前大的数据库使用团体在语句的使用方面不需要在学习,也让TIDB 和互联网的公司打的火热。
TIDB 的连接是十分简单的,你只需要下载MYSQL的客户端就可以使用,端口是4000。
TIDB SERVER 模块是与我们的MYSQL客户端进行连接的, 首先TIDB SERVER是一个无状态的静态节点,也就是他不是一个数据持久性的节点。TIDB 的扩展也很简单和无状态。
这样的情况下,我们的TIDB 可以无限扩展并且可以进行负载均衡的方式来降低客户的连接数(TIDB).
兼容mysql5.7协议, 支持MYSQL5.7常用功能更和语法, 对于像外键,存储过程,函数,触发器等都是不支持的。
对于MYSQL 支持的客户端都可以连接到TIDB中,如WORKBENCH, NAVICATE 等都是可以的。
mysql -uroot -p -h 127.0.0.1 -P4000
查看TIDB 的版本 ,其中包含 tidb的版本, 版本的特性是社区办还是其他的版本以及我们的UTC的时间, tikv的信息.
基本上相关的语法与MYSQL没有差异
数据库的配置中,分为两个部分 TIDB 配置和 集群配置, 存储在 TIKV 中的配置是直接生效, 而集群配置是需要集群的节点需要重新启动后才能加载.
tidb 的系统参数分为
1 全局级别 对全局都有影响
2 会话级别 支队会话级别进行影响, 默认是session级别
3 instance级别; 只影响修改节点的配置
A C E
A 正确, 集群配置参数没有作用域, 需要通过TIUP来进行集群的参数的修改, 并且就请你持久化在配置文件中
TIDB 的参数与配置
熟悉数据库的同学都知道参数的配置是数据库中重要的东西,这里TIDB的数据库的参数的类型和配置就是下面要进行学习的
TIDB的配置主要分为两部分,
1 系统配置 在TIDB 的客户端来进行配置和修改,不包含PD 和 TIKV的参数配置。这些系统的配置是要存储在 TIKV中的, 我们称之为系统参数。在数据库重启后,会继续存在,并且有作用域, 同时通过MYSQL客户端来进行参数的修改。
2 集群配置 集群配置中包含 PD, TIKV ,TIDB server 的配置参数,是需要在各个节点中存在,需要通过TIUP来配置,并且需要重启后生效的。没有作用域, 需要通过tiup edit-config tiup reload 等命令进行修改
什么是作用域:
作用域分为,会话session 作用域, 如自增列的步长的设计,在SESSION级别中是可以单独设计的,这点和MYSQL不同。而全局是针对除自己的SESSION 以外的其他会话(新连入)的全部生效。
另外还有一个INSTANCE的节点,这点与MYSQL的概念没有太多的关系,这与分布式数据库的概念有关,我们可以有多个TIDB的节点,这样的情况下,我们的影响的范围是针对这个TIDB SERVER生效的。
tiup cluster edit-config tidb-test (对TIKV PD 部分TIDB server 结点的命令)
下面我们来做一个练习关于TIDB 的配置
我们查看show variables like 'auto_increment_increment';
我们创建一个数据库并且创建一张表, 然后我们对其的自增进行变化,来去理解 SESSION, GLOBAL 之间的区别.
先插入一些数据,我们在调整步长 (这是TIDB 不是MSYQL 所以步长可以随便在SESSION 级别调整)
通过在 session 级别调整步长 set auto_increment_increment = 10; 我们就可以在这个SESSION 中再次插入数据,改变步长,见上图.
我们在开一个Session 然后在插入一条数据,可以看到这次的步长还是1
那么这里我们可以得到两个事情
1 SESSION 级别只针对当前SESSION 有效
2 默认对SESSION 级别生效的是GLOBAL的设置
3 当SESSION 级别的断开后,相关的配置就失效了
通过以上联系得出结论
1 SESSION 的设置在SESSION 中的级别大于GLOBAL
2 GLOBAL 设置的值,如果与SESSION 级别不同,则以SESSION 当前的值为准
下面我们通过修改配置文件修改集群的一些配置
修改配置之前,我们需要理解,
1 我们需要到TIKV的节点
2 配置文件的位置 一般在下图的位置,配置文件
通过命令 tiup cluster edit-config tidb-test 来打开集群的配置文件
下面通过相关配置,对于所有的节点进行配置.
保存,如果错误,则无法进行保存. 并告知你那里错误了
如果改对了则可以直接进行保存y
直接运行 tiup cluster reload tidb-test 就对相关的参数进行部署了.
出现问题在RELOAD的时候, 这边回来在咨询
那么实际上 reload 本身是不会影响生产的访问的,但问题会影响性能,这里与restart 是不同的.
tiup cluster display tidb-test 可以展示相关的整体集群的状态.
相关文章