我已经设法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';
如果你应该得到
您正在运行默认值,并有可能不存在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好运!