MySQL哪里是my.cnfpath?

我已经设法find我的MySQL安装目录: /usr/local/mysql/

我在哪里可以findmy.cnf的path来知道我应该在哪里configuration服务器? 我试过创build一个/etc/my.cnf (如下所示),它没有任何影响

 [mysqld] #charset collation_server=utf8_general_ci character_set_server=utf8 default_character_set=utf8 

根据这篇文章 :

从命令行/terminal运行这个命令将显示MySQL在Linux / BSD / OS X系统上的my.cnf文件的位置:

 mysql --help | grep "Default options" -A 1 

这将输出如下所示:

 Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

您现在可以在/etc/my.cnf使用上述输出来检查文件,然后使用/etc/mysql/my.cnf等等。 如果这些位置中没有一个位置,则可以创build一个并知道MySQL将使用它。

在Linux系统上findmy.cnf将是最快的解决scheme。

如果有几个my.cnf文件,看起来很可能(例如在/etc/etc/mysql/opt/mysql/etc等),那么你可以运行strace来查看MySQL二进制文件试图find它的configuration文件,但我认为这是一个矫枉过正的问题。

strace -fe open /etc/init.d/mysql start 2>&1|grep my.cnf显示你用来打开文件的系统调用。

看起来cnf创build的文件正在被另一个文件取代。 查看下面的默认订单。

mysqld –verbose –help

默认选项按给定顺序从以下文件中读取:/etc/my.cnf〜/ .my.cnf /etc/my.cnf

你怎么确定你的cnf文件没有被读取?

自更改以来,你重新启动了mysqld吗?

你有没有尝试创build一个新的数据库,并看看它的价值?

确定在黑暗中的一个狂野的镜头:

如果数据库安装在/ usr / local / mysql中,请尝试在my.cnf中查找/ etc / local

这里是你如何知道你是否有my.cnf

运行这个查询

 SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME IN ('wait_timeout', 'innodb_buffer_pool_size','innodb_log_file_size'); 

要么

 SHOW VARIABLES LIKE = 'wait_timeout'; SHOW VARIABLES LIKE = 'innodb_buffer_pool_size'; SHOW VARIABLES LIKE = 'innodb_log_file_size'; 

如果你应该得到

  • wait_timeout 28800
  • innodb_log_file_size 5242880
  • innodb_buffer_pool_size 8M(MySQL 5.0)或128M(MySQL 5.1+)

您正在运行默认值,并有可能不存在my.cnf目前。

你是如何安装MySQL和在什么平台上?

在unixoid操作系统上的暴力方法:

 find / -name my.cnf -print 

安装locate和updatedb可以运行它..

使用Fedora,Centos以root身份运行:

 yum install mlocate 

如果你正在运行Ubuntu运行:

 sudo apt-get install mlocate 

完成后运行updatedb Fedora(以root身份):

 $updatedb 

Ubuntu的:

 sudo updatedb 

那么你可以运行上面列出的locate命令。 my.cnf通常位于/ etc中。 你确定mysql被安装吗? 如果没有执行上面的命令来安装它并用mysqld取代mlocate好运!