使对 MySQL 全局变量的更改在重启后永久生效

使对 MySQL 全局变量的更改在重启后永久生效

我正在编写一个尝试远程配置多个 MySQL 服务器的应用程序。此配置的一部分涉及使用如下 SQL 语法设置全局 MySQL 变量:

SET GLOBAL VARIABLE foo=123;

这种方法效果很好,但只能持续到服务器重新启动。我想要的是一种让 MySQL 将这些更改写入选项 ( .ini) 文件的方法,这样它们在机器重新启动后仍能持久。

我正在尝试编辑选项文件而不直接打开它们 - 我更愿意通过 MySQL 连接完成所有操作。

有人知道这是否可以做到吗?

答案1

您只需将所有变量添加到/etc/mysql/conf.d/mysql.cnf [mysqld] 之后的文件中即可。

[mysqld]
max_connections=1000
foo=bar

如果你找到 [mysql] 将其替换为 [mysqld]

答案2

set-variable=var_name=value是执行此操作的经典方法my.cnf。此外,您还可以使用标志指定为--set-variable=var_name=value。在 MySQL 4.0.2 之前,大多数配置选项都是使用此方法设置的。

在 MySQL 5.5 中,此功能已弃用甚至被删除。大多数选项都可以在 my.cnf 中使用其实际名称进行设置。如果您需要进一步的帮助,请更具体说明。

答案3

要使全局系统变量设置永久生效,您应该在选项文件中进行设置:http://dev.mysql.com/doc/refman/5.0/en/option-files.html

答案4

我在 /etc/mysql/mariadb.conf.d/50-server.cnf 编辑变量

在[服务器]下

[server] 
innodb_file_format=barracuda
innodb_file_per_table=ON

相关内容