查看日志就是这个问题:Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exi
最近学习用到mysql,之前装的mysql5.7莫名其妙出了问题,上次就是打不开mysql服务,一气之下重装了一个低版本的mysql5.5,删数据库真的好麻烦,好在重装了之后5.5用了一段时间,但是今天5.5版本的又出现这个问题,真是气煞我也,所以找了好多资料把这个问题彻底解决:
问题
:
**先描述原因:**在windows下安装完Mysql他的数据库默认是在 C:Documents and SettingsAll UsersApplication Data下面的。但是我们在安装的时候会把mysql的安装目录放在其他盘D:softwareMySql;所以在安装的时候会让你选择安装目录,你选择其他的盘(不是默认的路径)后,但是mysql仍会在my.in中将Mysql安装目录下面的My.ini下这样设置Datadir=“C:ProgramDataMySQLMySQL Server 5.5data” ,但是问题来了,服务器重启后(习惯经常看一下目志),就会造成Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exi;
所以解决办法就是:修改了安装目录下的my.ini中的mysqld的datadir,如图:
我这个datadir从原来的C:ProgramDataMySQLMySQL Server 5.5data改为了现在的D:/software/MySql/data/(原谅我我的my.ini是自己写的,看起来不是那么丰满)——注意如果你之前已经改了D:/software/MySql/data/中的文件,就是这些:
那么一定要到C:ProgramDataMySQLMySQL Server 5.5data目录下把所有的文件拿过来直接替换。
接下来就可以尝试:
你之前的密码已经没用了,现在需要重新登录重设密码,怎么没有密码登,有个方法,还是从my.ini下手,在最后面加上:
最后面加上skip-grant-tables
下载就登上了,接下来改密码:1.use mysql;2.update user set password=password(“你的密码”)where user=“root”;—这里我的密码是123456;3.flush privileges;4.quit;就可以开心的重新使用自己的密码登录了;