如何修改TIDB参数

版本:4.0.2
节点: 3TIDB+3PD+3TIKV
说明: 公司需要把 local-infile 设置为0 , 我直接在其中一个TIDB节点deploy/conf 目录下的 tidb.toml 添加该参数并重启:systemctl restart tidb-4000.service 但报错:


除了这个参数要修改外 还有 interactive_timeout 等 多个参数需要调整

请问 如何通过中控机的tiup来批量修改tidb的参数 ,没找到合适的修改文档

https://docs.pingcap.com/zh/tidb/stable/maintain-tidb-using-tiup#修改配置参数

报错信息可以从 tidb log 中获取,看下是否有更加详细的打印

tidb.log 中未报出错误

tidb_stderr.log 中提示未知的参数 local-infile

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file

该文档里没找到 interactive_timeout,local-infile 的相关配置啊

https://docs.pingcap.com/zh/tidb/stable/system-variables
此为系统变量,设置方式与链接中方式一致,这边更新下文档,interactive_timeout 参数中在 release note 有体现,这边反馈下。

在标准模板中没有找到,但是在文档中可以搜索到,看下是不是 tispark 的命令行参数》?
https://github.com/pingcap/tidb/blob/master/config/config.toml.example

local-infile参数指定了能否把客户端的文件通过load 的方式导入到数据库中 , 这应该是tidb中限制才有效 ,tispark 我没用到的

interactive_timeout 参数配置到配置文件中 ,重启服务也提示没该 参数image

此为系统变量,在配置文件中是不被识别的。通过 set session/global 进行修改。

local-infile 在标准参数模板和 tidb log 中均未出现,请问是如何得知该参数的?

那是不是每次重启服务后 都要重启设置下参数? 有没持久化修改方式

image
local-infile 也是可以通过 set session/global 修改 ,但没有持久化修改。
该参数在MYSQL中控制着 LOAD DATA LOCAL ,禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力

set global 设置成功之后,会将其写入到 tikv 中,也是持久化了的,重启不会将参数重置。先设置下,我们确认下参数,并更新到文档。

好的 谢谢, 测试过 global 修改后 是持久化的

ok~