再谈mysql的配置文件my.ini or my.cnf (之二)
如若转载,请尊重个人劳动,务必注明原始出处:(http://blog.csdn.net/iihero/archive/2010/05/13/5585039.aspx)
本文为iihero@CSDN原创。
在前一篇短文里提到了my.ini/cnf的加载顺序:C:/WINDOWS/my.cnf->C:/WINDOWS/my.ini->C:/my.cnf ->C:/my.ini ->$installdir/my.ini。(%MYSQL_HOME%/my.ini)-> --defaults-extra-file=
,path
(linux下,/etc/my.cnf->/etc/mysql/my.cnf->SYSCONFDIR/my.cnf->$MYSQL_HOME/my.cnf-> --defaults-extra-file->~/my.cnf
如果这几个位置都找不到相应原配置文件呢。
那么一定是放到某一个位置了,在mysql程序已经起来的情况下,如何搜寻这个所谓的my.ini。
在Linux下,一条ps -ef命令就能找到最终使用的my.cnf的物理位置。
在windows下,你用tasklist命令是找不出来的,只能看到mysqld或者mysql-nt进程名,其命令行参数则找不到。直接查看services.msc也未必好找。
这时候,可以借助于专用工具了。
1. 如果你用过MKS tools之类的类unix命令行工具,ps -ef | grep mysql即可定位
如:
d:/>ps -ef | grep mysql
SYSTEM 1112 764 0 04:56:49 CONIN$ 0:00 D:/mysql-5.0.9-beta-win32/bin/mysqld-nt --defaults-file=D:/mysql-5.0.9-beta-win32/bin/my.ini mysql5
2. 如果没有1所提示的工具,你还可以下载一个WinDbg for windows (这是微软提供的免费超强debug工具),把它的安装路径设置到path里头,然后
运行命令tlist -v | findstr mysql即可。如:
d:/>tlist -v | findstr mysql
0 32 3240 Console.exe Title: Console - findstr mysql
0 32 1112 mysqld-nt.exe Svcs: mysql5
Command Line: D:/mysql-5.0.9-beta-win32/bin/mysqld-nt --defaults-file=D:/mysql-5.0.9-beta-win32/bin/my.ini mysql5
Command Line: findstr mysql
3. 最后,如果你实在不喜欢命令行,那就用图形界面好了,下一个ProcessExplore-NT.zip
http://technet.microsoft.com/en-us/sysinternals --> Process Explorer
运行这个图形界面的进程管理器,
选择view->select columns,然后在process image里头,把Image Path和Command Line选上。
然后你在进程列表里进行搜索,找到mysql-nt.exe,就可以看到它的命令里有完整的参数信息,里头就有指定的my.ini相关信息。
更为简便的方式是:
直接从Find -> Find Handle,然后输入mysql,
这样,选择其中一个结果,关闭此窗口,从Process菜单里的Properties里头就可以看到该进程的完整信息:
全文结束。
最后提示,有人也许想用MingW+Msys或者Cygwin获取进程的详细信息,遗憾,它们只能查询它系统内的进程信息,而找不到Windows系统本身的进程信息。