项目场景:
数据库连接报错
问题描述
本来上次重新装mysql弄好了,中秋回来又报错
Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't existFor more information, see Help and Support Center at http://www.mysql.com.
原因分析:
百度翻译出来就是致命错误:无法打开和锁定特权表:表“mysql”。用户“”不存在有关详细信息,请参阅帮助和支持中心http://www.mysql.com.所以这次是不是mysql里面表不全或者文件被干掉了,搜到了这篇老哥的文章https://blog.csdn.net/qq_36439700/article/details/85626267
跟我的报错是一样的,没有这三个文件。
解决方案:
我没有这几个文件的的备份,所以我把data目录给删除了,删除之后在bin目录输入
mysqld --initialize,这个是初始化MySQL的一个命令,具体在前面那个文章有。有了之后怎么办这个是有密码的。方法:1.
修改mysql的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables这行代码2.重启mysql服务(net stop mysql,net start mysql),服务就启动成功了
3.启动成功后输入mysql -u root -p命令登录,会提示你输入密码直接回车
4.输入SETPASSWORD = PASSWORD('123456')命令修改密码;
5.在前面那个配置文件把加的那行删掉。
7.到此我的数据库就重新连接成功了。
总结
出现这个问题我也很纳闷,过个中秋放坏了,my.ini里的安装路径和数据路径都没改过,有点小离谱,文件不知道怎么就没了。列一下我的解决办法希望对大家有点帮助。