设置 50-server.cnf 时出现未知变量“pid-file=/run/mysqld/mysqld.pid”

设置 50-server.cnf 时出现未知变量“pid-file=/run/mysqld/mysqld.pid”

我正在修改 /etc/mysql/mariadb.conf.d/50-server.cnf

当我添加以下代码时,出现错误未知变量“pid-file = / run / mysqld / mysqld.pid”

[mysql]
default-character-set = utf8mb4

我正在添加 mysql 标签,因为它不在文件中,但我不明白为什么这一行会影响似乎在 mysql conf 文件中定义的 pid 变量。

有任何想法吗?

50-server.cnf 的完整内容

[server]

[mysqld]
innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql] 
default-character-set = utf8mb4

# * Basic Settings
#
user                    = mysql
pid-file                = /run/mysqld/mysqld.pid
socket                  = /run/mysqld/mysqld.sock
#port                   = 3306
basedir                 = /usr
datadir                 = /var/lib/mysql
tmpdir                  = /tmp
lc-messages-dir         = /usr/share/mysql
#skip-external-locking

bind-address            = 127.0.0.1
query_cache_size        = 16M

log_error = /var/log/mysql/error.log
expire_logs_days        = 10
character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci

[embedded]

[mariadb]

[mariadb-10.3]

答案1

正式将其作为答案,方括号表示配置的部分,您[mysqld]使用插入的[mysql]部分将该部分切成两半。这会导致将pid-file设置置于下方[mysql]而不是下方[mysqld]。根据我的错误判断,[mysql]没有 aapid-file设置。

将您的设置添加[mysql]到文件的顶部或底部即可。或者,将它们放入50-server.cnf名为的同级文件中51-client.cnf,以便将来可以轻松找到它们(文件名中的数字是加载顺序,名称是任意的)。

相关内容