是否有一个MySQL命令来定位my.cnf配置文件,类似于PHP的phpinfo()定位它的PHP .ini?


当前回答

这取决于你的权限但对我来说 这个工作在phpmyadmin SQL控制台

显示变量;

然后改变一些变量 你可以这样做

SET GLOBAL max_connections = 1000;

or

设置@@GLOBAL。Max_connections = 1000;

试试吧

其他回答

这可能有用:

strace mysql ";" 2>&1  | grep cnf

在我的机器上输出:

stat64("/etc/my.cnf", 0xbf9faafc)       = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4271, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
read(3, "# /etc/mysql/my.cnf: The global "..., 4096) = 4096
stat64("/home/xxxxx/.my.cnf", 0xbf9faafc) = -1 ENOENT (No such file or directory)

因此,看起来/etc/mysql/my.cnf是一个,因为它的stat64()和read()是成功的。

如果你在VPS中,并试图在已经运行的服务器上编辑my.cnf,你可以尝试:

ps aux | grep mysql

您将显示mysql命令正在运行的参数以及——defaults-file指向的位置

请注意,您的服务器可能运行多个MySQL/MariaDB服务器。如果您看到一行没有——defaults-file参数,该实例可能正在从mysqladmin上提到的.cnf中检索配置——帮助其他人指出。

请注意,尽管mariadDB从其他答案中列出的各种my.cnf文件加载配置详细信息,但它也可以从其他具有不同名称的文件加载配置详细信息。

这意味着如果您对my.cnf文件中的一个进行了更改,它可能会被另一个具有不同名称的文件覆盖。要使更改生效,您需要在正确的(最后加载的)配置文件中更改它-或者,可能在所有配置文件中更改它。

那么如何找到所有可能加载的配置文件呢?不要寻找my.cnf文件,试着运行:

grep -r datadir /etc/mysql/

这将找到所有提到datadir的地方。在我的例子中,它产生了这样的答案:

/etc/mysql/mariadb.conf.d/50-server.cnf:datadir     = /var/lib/mysql 

当我编辑该文件(/etc/mysql/mariadb.conf.d/50-server.cnf)来更改datadir的值时,它起作用了,而在my.cnf中更改它不起作用。所以无论你想改变什么选择,试着用这种方式来寻找。

如果你用的是安装了Homebrew的Mac电脑,那就用吧

编译mysql信息

你会看到

$ brew info mysql
mysql: stable 5.6.13 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with: mariadb, mysql-cluster, percona-server
/usr/local/Cellar/mysql/5.6.13 (9381 files, 354M) *

最后一行是MySQL文档中的INSTALLERDIR

对我来说,这是我有“ENGINE=MyISAM”类型的表,一旦我改变它为“ENGINE=InnoDB”它工作了:) 在PhpMyAdmin在Azure应用程序服务:)