今天发现一个MySQL的问题,当把MySQL的文件目录安放在t字母打头的目录下时,比如d:/test目录,mysql服务就起不来了,报告找不到文件:
D:/test/mysql>bin/mysqld-nt.exe --console
090811 10:09:55 [ERROR] Can't find messagefile 'D: est/mysql/share/english/errmsg.sys'
090811 10:09:55 [ERROR] Aborting
实际原因是,MySQL把my.ini文件中的d:/test里面的/t当成了转义字符处理,当然就找不到目录了。
我的my.ini中的配置:
[mysqld]
basedir=D:/test/mysql
datadir=D:/test/mysql/data
后来查看了一下安装MySQL时自动生成的my.ini文件,发现MySQL自己推荐使用unix风格的目录分隔符,于是把d:/test改为d:/test或者d://test,就可以启动了。
我使用的版本:
Version: 6.0.3-alpha-community
Version comment: MySQL Community Server (GPL)
注意:
除了t打头的以外,如果你在my.ini中使用windows风格目录名,那么某一级目录名中含有s,n等打头的也不行,它们可能也会和/一起造成转义。
我在MSDN查了一下转义字符表,似乎没有s,不知道为什么s打头的也不行。
Escape Sequence Represents
/a Bell (alert)
/b Backspace
/f Formfeed
/n New line
/r Carriage return
/tHorizontal tab
/v Vertical tab
/' Single quotation mark
/" Double quotation mark
// Backslash
/?Literal question mark
/oooASCII character in octal notation
/xhhhASCII character in hexadecimal notation
分享到:
2009-08-11 21:02
浏览 587
评论