我正在编写一个尝试远程配置多个 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