mysql show指令无法使用问题解决办法--ERROR 1449 (HY000)

ERROR 1449 (HY000): The user specified as a definer (‘mysql.infoschema’@‘localhost’) does not exist

前言

前几使用mysql,突然发现无法使用show databases;查看已有数据库。找了很多的博文也没有解决,今天终于弄好了分享以下解决办法。

错误提示

错误提示信息:
在这里插入图片描述进入数据库之后,输入show databases;提示

ERROR 1449 (HY000): The user specified as a definer (‘mysql.infoschema’@‘localhost’) does not exist

网上搜了许多解决办法是:
输入:mysql_upgrade -uroot -p
如下图:
在这里插入图片描述
但是mysql_upgrade这个方法官方已经弃用了,然后貌似最好的办法就是下载新的版本,但是这种方法过与麻烦。
首先看以下输入mysql_upgrade -u root -P3306 -p的结果:
在这里插入图片描述
大概意思是:

mysql_upgrade:[警告]在命令行界面上使用密码可能不安全。
现在不建议使用mysql_upgrade客户端。现在,升级客户端执行的操作由服务器完成。
要升级,请使用较旧的数据目录启动新的MySQL二进制文件。修复用户表是自动完成的。升级后不需要重新启动。
升级过程会在运行带有旧数据目录的新MySQL二进制文件时自动开始。为避免意外升级,请对MySQL二进制文件使用–upgrade = NONE选项。还提供了选项–upgrade = FORCE来按需运行服务器升级序列。
由于多种原因,服务器升级可能会失败。在这种情况下,升级序列将在下一次MySQL服务器启动期间再次运行。如果服务器升级反复失败,则可以使用–upgrade = MINIMAL选项启动服务器,以在不执行升级序列的情况下启动服务器,从而允许用户手动解决问题。

所以,我i们就使用--upgrade = FORCE参数来升级。

解决办法

第一步:首先要关闭mysql服务:(在CMD命令框中输入)

net stop mysql  #关闭服务

在这里插入图片描述
第二步:进入你的mysql安装路径中的bin目录下
在cmd中输入 cd /d [路径]
如我的是在D盘
在这里插入图片描述
第三步最重要的一步!!!!!!
输入mysqld.exe --upgrade=FORCE
也可以输入:[路径] --upgrade=FORCE
如我的在D盘:

D:\MYSQL\mysql-8.0.18-winx64\bin>D:\MYSQL\mysql-8.0.18-winx64\bin\mysqld.exe  --upgrade=FORCE

然后要等待一会,一般大约会1~2分钟。有的可能会更久,同时要确保电脑有网络。这时候一定不要心急,因为马上就要成功了
在这里插入图片描述
第三步如果一直没有反应,等待一会后可以ctrl+c结束

第四步:其实这时候就已经大功告成了,
打开MySQL服务

net start mysql  #打开服务

在这里插入图片描述
最后打开MySQL 输入 show databases;就会发现已经可以了。

在这里插入图片描述
ps:尽量在执行第一步之前,首先在mysql数据库中输入下面这条指令SET GLOBAL innodb_fast_shutdown = 1;之后在按照步骤来做。

结语

遇到问题一定不要烦躁不安,首先要上自己去寻找解决办法。这要在以后遇到问题的时候也会能轻松应付。最后如果本篇文章对你有帮助,那真是我的荣幸。goodbye!

如有问题请留言讨论。

END!


版权声明:本文为weixin_46897073原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。