以前装的MySQL不知为什么突然不能用了,遂从网上重新下了mysql-essential-5.1.63-win32.msi,开始安装:
1、卸载MySQL
2、删除所有与MySQL有关的文件夹(C:\Program Files\MySQL\MySQL Server 5.1\bin; C:\ProgramData\MySQL\MySQL Server 5.1)
3、清理注册表中MySQL残余垃圾
4、安装MySQL
安装完后,没有去掉运行“MySQLInstanceConfig”选项,自动运行MySQLInstanceConfig.exe
下一步...一直到最后一步,第三项start service却失败了,查看C:\ProgramData\MySQL\MySQL Server 5.1\data上有错误日志:
Fatal error: Can"t open and lock privilege tables: Table "mysql.host" doesn"t exist
网上搜了下,知道这是datadir目录配置不正确引起的错误,可是我没改my.ini文件,打开my.ini文件,里面的datadir配置:
datadir="C:\ProgramData\MySQL\MySQL Server 5.1\data"
我到C:\ProgramData\MySQL\MySQL Server 5.1\data目录下看,也确实有mysql文件夹,可它就是找不到,我每晚临睡前尝试重装MySQL,都是这个问题,这样搞了几个晚上,终于在今晚解决了
今晚在google上, 发现有人遇到同样的问题,他说他用
mysqld -skip-grant-tables
命令启动成功了,我照着试了试,果然可行。
然后我又运行mysql_upgrade命令,被提示找不到mysql库
于是我用mysqlclient进去手动create database mysql创建了mysql库,再次运行mysql_upgrade命令,这次成功了
并且直接net start mysql启动MySQL服务,也成功了
但接着我发现在C:\ProgramData\MySQL\MySQL Server 5.1\bin目录下,有一个mysql文件夹,看来mysql提示
Fatal error: Can"t open and lock privilege tables: Table "mysql.host" doesn"t exist
,是在这个目录上找不到,可是为什么是这个目录,我想了一下,在配置MySQL实例时,有个“Installation Path”,我没有改,大概就是这个原因吧