(mysql5.7)2003-Can’t connent to MySQL server on localhost
其实我遇到过两次这样的错误(恨不得把电脑砸一遍),第一次是重置电脑,重新安装MySQL,这次因为电脑有重要东西不能搞。
右击我的电脑->管理->服务,然后发现MySQL启动会报错
“本地计算机上的MySQL57服务启动后停止。某些服务在未由其他服务或程序使用时将……”
想打人……
解决办法(也是网上搜到的)
一:进入你的MySQL的bin目录(这是链接)
1.输入mysqld --console 吧信息打印到控制台 ,然后找[ERROR]后面的信息。
2020-06-11T04:48:16.374853Z 0 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
2020-06-11T04:48:16.472432Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2020-06-11T04:48:16.473146Z 0 [ERROR] Fatal error: Failed to initialize ACL/grant/time zones structures or failed to remove temporary table files.
2020-06-11T04:48:16.493876Z 0 [ERROR] Aborting
我找到4个[ERROR],然后我就复制第一个的信息百度,找到添加链接描述,我就用第一条命令(用之前需要将mysql目录下的data的东西清掉(最好先备份到其他地方))
再然后就启动成功了
然后最后还有个问题就是,data的数据没了,就相当于我的数据库凉凉了,
然后我把备份的数据data(原来备份的数据)搞到data(因为 mysqld --initialize 命令产生的新数据)里面服务器会再次启动失败,不知道是不是我原来的data有什么问题。这个有知道的小伙伴,麻烦评论一下解决方法。
还有,我搞完这个之后,需要重新修改一下密码才行,否则会报
1045 -Access denied for user ‘root’@‘localhost’((using password: yes )
这个错误。
地址一
地址二
两个地址里的东西必须搭配使用,其实就是第一条地址里面的步骤之中,修改密码的命令太老了,5.7之后修改了一下,第二条就是告诉新命令的
mysql> update mysql.user set authentication_string=password('*******') where user='*******'; #修改密码成功
再添加一个恢复数据库的链接[添加链接描述],(https://www.cnblogs.com/huangcong/p/3359030.html)
这也是解决上面我说的关于复制data会失败的解决方法