我正在使用外部 mysql 服务器与 akonadi 配合使用。(使用 KDE4)。现在我可以解决所有问题,但我仍然需要将一些设置应用于服务器的“mysql-global.conf”文件。例如,这就是建议的内容:
# wait 365d before dropping the DB connection (default:8h)
wait_timeout=31536000
所以我尝试通过 mysql 控制台更改此设置。但它没有反映在 /etc/mysql/my.cnf 文件中的任何地方。
(etc/akonadi/mysql-global.conf 似乎对 mysql-server 也没有影响!)
我的问题:将这些(或类似的)设置放在哪里才能使 akonadi 不会断开与外部服务器的连接(我猜是全局的?)?
答案1
在 mysql 控制台中设置变量不会更新my.cnf
- 它只会在 mysql 守护进程退出时才会反映。
/etc/mysql/my.cnf
是正确的放置位置,在[mysqld]
标题下。
它将在重新启动后加载,或者也可以在 mysql 控制台中立即执行(这听起来像您已经尝试过的):
SET GLOBAL wait_timeout = 31536000;
针对“不起作用”的评论进行更新回应:
引用自mysql.com文档[1]:
在线程启动时,会话 wait_timeout 值从全局 wait_timeout 值或全局 interactive_timeout 值初始化,具体取决于客户端的类型(由 mysql_real_connect() 的 CLIENT_INTERACTIVE 连接选项定义)。
因此,更改它确实有效,但您无法在 mysql 控制台会话中看到结果。尝试更改 interactive_timeout。
要查看其是否生效,请使用SHOW GLOBAL VARIABLES
:
SHOW GLOBAL VARIABLES LIKE 'wait_timeout';
[1]http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout
答案2
1.编辑my.cnf(MySQL配置文件)。
Ubuntu 16.04
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
Debian
sudo vi /etc/mysql/my.cnf
Centos
sudo vi /etc/my.cnf
2. 找到超时配置并进行调整以适合您的服务器。
[mysqld] 等待超时 = 31536000 interactive_timeout = 31536000
3. 保存更改并退出编辑器。
4. 重新启动 MySQL 以应用更改,如下所示:
sudo /etc/init.d/mysql 重启