我想找出 MySQL 配置文件中变量可以在哪个部分使用。例如,我可以放在或bind-address
下,但放在 下则不起作用。当我查找[mysqld]
[server]
[client]
文档,我得到的只有这些:
Command-Line Format --bind-address=addr
Option-File Format bind-address=addr
Variable Name bind-address
Variable Scope Global
Dynamic Variable No
Permitted Values
Type string
Default 0.0.0.0
它告诉我范围是Global
,但没有告诉我应该把它放在哪里。我正在清理一个my.cnf
文件,里面有很多变量,放在不同的部分,但我不知道应该把什么放在哪里。
有什么方法可以找出变量位于 MySQL 配置的哪个部分?
答案1
基本上,my.cnf 是 MySQL 多个方面的配置文件,包括守护进程/服务器、客户端、每个的安全模式版本等。
一些程序从多个组中获取配置指令。
例如,bind-address 指令仅与守护进程/服务器相关,因为它是唯一需要将自身绑定到地址的东西,因此该指令仅属于 [mysqld] 或 [server] 部分。启动服务器时,它不会查看 [client] 部分中的任何内容,启动客户端时,bind-address 指令不相关。
文档告诉您 my.cnf 范围是全局的原因是,MySQL 套件中的所有程序都可以/将会在该文件中查找选项。
因此,如果您不将其视为配置的“部分”,而是将其视为一个文件中的多个配置文件,那么可能会更有意义。在决定将什么放在哪里时,您只需考虑要为 mysql 的哪个方面设置选项。服务器?客户端?仅安全模式?
因此,以摘要形式回答您的问题“什么应该放在哪里?” - 将与某些程序相关的选项放在适用于该程序的部分中。
mysql--帮助
默认选项按给定顺序从以下文件读取:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 以下组正在读取:mysql 客户端
欲了解更多详情,请阅读:
MySQL 服务器选项(以及您可以用来设置它们的部分)
使用 MySQL 选项文件(my.cnf 上的概述)