我已my.cnf
使用以下行更新了我的数据库文件:max_connections=200
. 之后我停止并启动了 mysql 服务,以便更改生效。
但由于某种原因,此更改不会影响数据库,因为如果我运行:
mysql> select @@max_connections
它显示最大连接数为 100。
显然还有其他地方可以管理这个值。我在哪里可以找到它或我做错了什么?
感谢你的回复。
确保 [mysqld] 部分下的 max_connections :
前任:
[mysqld]
socket=/path/to/mysql.sock
datadir=/var/lib/mysql
max_connections=200
[client]
#mysql-client settings here..
尝试运行mysqld --verbose --help
看看mysqld实际读取的是哪个配置文件,使用了哪些参数和值。输出将如下所示:
mysqld Ver 5.0.51a-24-log 用于 x86_64 上的 debian-linux-gnu ((Debian)) 版权所有 (C) 2000 MySQL AB,Monty 和其他人 该软件附带绝对没有保证。这是免费软件, 欢迎您在 GPL 许可下修改和重新分发它 默认选项按给定顺序从以下文件中读取: /etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf 读取以下组: mysql_cluster mysqld server mysqld-5.0 变量(--variable-name=value) 和布尔选项 {FALSE|TRUE} 值(读取选项后) --------------------------------- ----------------- ------------ ... 要查看正在运行的 MySQL 服务器正在使用哪些值,请键入 'mysqladmin variables' 而不是 'mysqld --verbose --help'。
它可能与 mysql 服务器被关闭和重新启动的“方式”有关。在我的系统上,如果我使用 mysqld 守护程序服务关闭 mysql(例如 service mysqld stop),我会收到关闭通知,但 ps 显示 mysql 仍在运行。使用类似的“服务 mysqld 重启”,对 my.cnf 文件的一些更改会被接受,但很多不会。
关闭mysql的另一种方法是使用mysqladmin -u user -pPass shutdown。我注意到当我使用这种方法时,mysql被完全关闭(ps中没有遗留),当我重新启动mysql服务器时,对my.cnf文件的所有更改都被接受了。
mysqld的变化不一定反映在mysql客户端!我在my.cnf中改了一个全局变量赋值,重启服务,在mysql客户端中查询。它返回旧值。但是,当从脚本中查询时,该值实际上已更改!
如果 mysql 作为 Window 服务启动,请检查 Windows 服务上的“可执行文件路径”设置。(服务-> MYSQL56-> 属性)。
如果传入了 --defaults-file 选项,它可能指向一个完全不同的 .ini 文件,该文件位于未使用 'mysqld --verbose --help' 显示的位置。
如果从服务启动参数中删除 --defaults-file 选项,它将通过 mysqld --verbose --help 列出的 ini 文件列表。
将 my.cnf 放入 /etc/my.cnf 并重新启动 mysql 为我解决了这个问题。我正在使用 mac 操作系统。mysql版本是5.6.41