再谈mysql的配置文件my.ini or my.cnf (之二)

晨曦之光 发布于 2012/04/12 12:53
阅读 2K+
收藏 0

如若转载,请尊重个人劳动,务必注明原始出处:(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系统本身的进程信息。


原文链接:http://blog.csdn.net/iihero/article/details/5585039
加载中
返回顶部
顶部