小墨の博客

梦想需要付诸行动,否则只能是梦

MySQL配置文件中连字符(-)与下划线(_)混用(原创)

今天在修改MySQL 8.0配置文件的时候,发现了一个奇怪的现象。

在 /etc/mysql/mysql.conf.d/mysqld.cnf 这个文件中,有些配置是以连字符(-)连接的,例如

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address		= 127.0.0.1
mysqlx-bind-address	= 127.0.0.1

同时,也有以下划线(_)连接的,例如

# Log all queries
# Be aware that this log type is a performance killer.
# general_log_file        = /var/log/mysql/query.log
# general_log             = 1

我当时就感觉很奇怪,MySQL有很多人都在用,怎么可能会这么随意的命名呢?于是按耐不住好奇心准备去网上查一下。

不知道是我的关键词没有搜对还是怎么的,能够找到的参考资料实在不多。

下面这几个是我找到的几个为数不多的refer:

MySql配置文件my.cnf下划线:https://bbs.csdn.net/topics/380018765

my.cnf 配置 中杠 与 下划线 不一致问题:https://blog.csdn.net/u011665746/article/details/79067637

MySQL官方文档:http://dev.mysql.com/doc/mysql/en/server-system-variables.html

(打开时会跳转到:https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html  )


初步得到的答案是:两种写法都支持。


就拿第一个配置项来说(如下图):

202203251648203697517650.png

他的系统变量名是(System Variable)使用 _ 连接的,而命令行格式(Command-Line Format)是使用 - 连接的。后面的所有变量名都是同理。


总的来说,其实也不是什么大问题,因为MySQL这两种写法都支持,如果说有mysqld无法识别的配置,MySQL他也启动不起来,所以说我们在实际使用的时候也不需要过于担心。




在最后,随便说说,其实我一开始猜测下划线和连字符可能是用来区分这个设置项能否动态设置或者其他什么的,所以我把 /etc/mysql/mysql.conf.d/mysqld.cnf 这个文件中出现的所有配置项都整理了一下,形成了文末这个表格(可能呈现在网页上效果不太好,所以也一并附上图片)

表中表绿的是 mysqld.cnf 中使用连字符配置的项,标黄的是使用下划线配置的项,白色的为不存在连字符和下划线的配置项。

似乎连字符和下划线并没有什么必然的联系,不过好像虽然多数符合我的猜测,但也有一些是例外。或许还有一种可能就是连字符的配置项是必须配置的?不过好像也可能性不大。如果您有更好的思路欢迎跟我一起交流~

202203251648207364452383.png



Command-Line   FormatSystem VariableScopeDynamicSET_VAR Hint   AppliesType
连字符pid-file--pid-file=file_namepid_fileGlobalNoNoFile name

socket--socket={file_name|pipe_name}socketGlobalNoNoString

port--port=port_numportGlobalNoNoInteger

datadir--datadir=dir_namedatadirGlobalNoNoDirectory name

tmpdir--tmpdir=dir_nametmpdirGlobalNoNoDirectory name
连字符bind-address--bind-address=addrbind_addressGlobalNoNoString
连字符mysqlx-bind-address





下划线key_buffer_size--key-buffer-size=#key_buffer_sizeGlobalYesNoInteger
下划线max_allowed_packet--max-allowed-packet=#max_allowed_packetGlobal, SessionYesNoInteger
下划线thread_stack--thread-stack=#thread_stackGlobalNoNoInteger
下划线thread_cache_size--thread-cache-size=#thread_cache_sizeGlobalYesNoInteger
连字符myisam-recover-options--myisam-recover-options[=list]myisam_recover_optionsGlobalNoNoEnumeration
下划线max_connections--max-connections=#max_connectionsGlobalYesNoInteger
下划线table_open_cache--table-open-cache=#table_open_cacheGlobalYesNoInteger
下划线general_log_file--general-log-file=file_namegeneral_log_fileGlobalYesNoFile name
下划线general_log--general-log[={OFF|ON}]general_logGlobalYesNoBoolean
下划线log_error--log-error[=file_name]log_errorGlobalNoNoFile name
下划线slow_query_log--slow-query-log[={OFF|ON}]slow_query_logGlobalYesNoBoolean
下划线slow_query_log_file--slow-query-log-file=file_nameslow_query_log_fileGlobalYesNoFile name
下划线long_query_time--long-query-time=#long_query_timeGlobal, SessionYesNoNumeric
连字符log-queries-not-using-indexes--log-queries-not-using-indexes[={OFF|ON}]log_queries_not_using_indexesGlobalYesNoBoolean
连字符server-id





下划线log_bin





下划线binlog_expire_logs_seconds





下划线max_binlog_size





下划线binlog_do_db





下划线binlog_ignore_db






张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:533
    • 页面总数:20
    • 分类总数:96
    • 标签总数:212
    • 评论总数:63
    • 浏览总数:274202

    | | |
    | |  Z-Blog PHP