如若轉載,請尊重個人勞動,務必註明原始出處:(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系統本身的進程資訊。