今天想手动配置MySQL,可是在运行MySQL的服务时遇到了1067错误,郁闷了良久,最终的解,作文铭记。
以前也手动配置成功过,也遇到过1067错误,由于以前没有总结错误,就不记得当时是什么原因了。
上次有看到过使用default-file参数,可以不将配置文件my.ini放到PATH里,就决定试试。
解压,改my-small.ini为my.ini,然后直接执行了mysqld -install MySQL -default-file=”D:\tools\mysql\my.ini”,安装成功
然后灾难来了(有点夸张),执行net start MySQL运行服务返回如下:
MySQL 服务正在启动 .
MySQL 服务无法启动。
系统出错。
发生系统错误 1067。
进程意外终止。
然后我发扬了有问题google一下的精神,得到的结果是my.ini文件里缺少配置项。
加入以下内容再试:
[mysqld]
basedir=D:/tools/mysql
datadir=D:/tools/mysql/data
[WinMySQLAdmin]
Server=D:/tools/mysql/bin/mysqld-nt.exe
错误依然,这下郁闷了。
然后mysqld -remove MySQL删除服务,把my.ini放到windows目录,在执行mysqld -install MySQL,然后运行服务,居然成功了,说明my.ini文件没什么问题。
那就是default-file参数的问题,接着google,发现是defaults-file,少了个s,郁闷啊。
知错就改,善莫大焉。
可是……执行mysqld -install MySQL -defaults-file=”D:\tools\mysql\my.ini”后,依然无法启动服务,错误依然。
继续google,发现有人这么写“mysqld –install MySQL –defaults-file……”,两个横杠……
翻了以下《MySQL5 权威指南》,上面写的和我写的是一样的,不管,先试试别人的,执行mysqld –install MySQL –defaults-file=”D:\tools\mysql\my.ini”,呀!服务可以正常启动了。
看来权威也有不权威的时候,我又尝试了一下mysqld -install MySQL –defaults-file=”D:\tools\mysql\my.ini”,也没问题。
去看看服务……
服务的可执行文件为:“D:\tools\mysql\bin\mysqld –defaults-file=D:\tools\mysql\my.ini MySQL”。
然后试了一下mysqld -install MySQL111 ——-defaults-file=”D:\tools\mysql\my.ini”。
在服务里看到MySQL111的可执行文件为:“D:\tools\mysql\bin\mysqld ——-defaults-file=D:\tools\mysql\my.ini MySQL111”。
HOHO,原来是这样。
总结:使用mysqld安装MySQL服务时,mysqld不会检查defaults-file的正确性,设置不正确也可以安装,但运行的时候就会出问题。《MySQL5 权威指南》有bug,尽信书不如无书。还有……我至今没在mysql的官网上查到1067错误的具体意义。差点忘了删MySQL111服务……
Defaults-file少了一个s:错误与我一样。。。