【问题标题】:Mysql: modification in my.cnf doesn't take effectMysql:my.cnf中的修改不生效
【发布时间】:2012-01-25 14:34:46
【问题描述】:

我已使用以下行更新了我的数据库的my.cnf 文件:max_connections=200。之后我停止并启动了 mysql 服务,以便更改生效。

但由于某种原因,此更改不会影响数据库,因为如果我运行:

mysql> select @@max_connections

显示最大连接数为100。

显然还有其他地方可以管理这个值。我在哪里可以找到它或我做错了什么?

感谢您的回复。

【问题讨论】:

  • 您使用什么操作系统来托管您的 mysql 服务器?
  • 我的服务器使用的是 linux。
  • 可能,内存限制可能会将其限制为 100。我在 200 处测试了自己的,但从 @@max_connections 只能达到 151。我将其设置为 110 以确认该值是从 my.cnf 中读取的,并且我确实从 @@max_connections 得到了正确的 110。
  • 虽然 100 是一个可疑的整数......

标签: mysql my.cnf


【解决方案1】:

确保 [mysqld] 部分下的 max_connections:

例如:

[mysqld]
socket=/path/to/mysql.sock
datadir=/var/lib/mysql
max_connections=200

[client]
#mysql-client settings here..

【讨论】:

    【解决方案2】:

    尝试运行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'。

    【讨论】:

    • 没有修复它,但它对我有帮助。谢谢!
    【解决方案3】:

    这可能与“如何”关闭和重新启动 mysql 服务器有关。在我的系统上,如果我使用 mysqld 守护程序服务关闭 mysql(例如 service mysqld stop),我会收到关闭通知,但 ps 显示 mysql 仍在运行。使用类似的“服务 mysqld 重启”,对 my.cnf 文件的一些更改会被接受,但很多不会。

    另一种关闭mysql的方法是使用mysqladmin -u user -pPass shutdown。我注意到当我使用这种方法时,mysql被完全关闭(ps中没有遗留),当我重新启动mysql服务器时,对my.cnf文件的所有更改都被接受了。

    【讨论】:

      【解决方案4】:

      对mysqld的改变不一定反映在mysql客户端!我在my.cnf中改了一个全局变量赋值,重启服务,在mysql客户端中查询。它返回旧值。然而,当从脚本中查询时,该值实际上已更改!

      【讨论】:

        【解决方案5】:

        如果 mysql 作为 Window 服务启动,请检查 windows 服务上的“可执行文件路径”设置。 (服务 -> MYSQL56 -> 属性)。

        如果传入了 --defaults-file 选项,它可能指向一个完全不同的 .ini 文件,该文件位于未显示 'mysqld --verbose --help' 的位置。

        如果您从服务启动参数中删除 --defaults-file 选项,它将通过 mysqld --verbose --help 列出的 ini 文件列表。

        【讨论】:

        • 谢谢!在我的电脑上它正在寻找C:\ProgramData\MySQL\MySQL Server 8.0
        【解决方案6】:

        将 my.cnf 放入 /etc/my.cnf 并重新启动 mysql 为我解决了这个问题。我正在使用 mac 操作系统。 mysql版本是5.6.41

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-01-18
          • 2019-10-27
          • 2017-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-09-24
          相关资源
          最近更新 更多