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

MySQL 1449错误



解释与前言

这个报错的意思是MySQL的自身权限给删了或者说你自己的权限你没了,不过不用担心,这篇博客帮你解决
在这里插入图片描述

前言:看到这四个东西没,我本以为是没有任何用的,然后我就删了,删完之后还能连着数据库继续用,继续编辑.sql语句,然后等再次打开用的时候发现没办法连接了,提示1449错误,如果你也是因为数据库里面有重要的东西,不敢轻易的卸载重装的请往后看。


博主试过的方法

比如

1. grant all privileges on *.* to root@"%" identified by "password";
-- 添加权限用户 来解决1449错误
2.  flush privileges;

我这还是出现了1064错误(大概就是说我的版本不认这个程序),如下:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by "password"' at line 1

因为我的MySQL版本为8,我又试着这样依次输入

create user 'root'@'%' identified by 'password';

grant all privileges on *.* to 'root'@'%';

等我敲完之后,他都成功了并且提示OK了

Query OK, 0 rows affected (0.00 sec)

我本以为我的问题解决了,但是后来我才知道 0 rows affected (0.00 sec 这个玩意是无效的意思,所以他还是没有权限


博主的解决办法(Navicat)

然后我突然想到一个办法,具体的解决办法的思路如下:

  1. 既然删了,那就再补充回来呗。
  2. 创建四个与原先一样的不就OK了。
  3. 首先在navicate中操作,创建与那文件一样的名字
  4. 然后赋给所有权限就OK了

具体操作步骤如下:

1.新建用户
在这里插入图片描述
2.点击服务权限(将所有权限全部打对勾)
在这里插入图片描述
3.然后点击常规(将用户名与主机补全)

用户名如下:
mysql.infoschema
mysql.session
mysql.sys
root

在这里插入图片描述
4. 点击保存即可
在这里插入图片描述

博主的解决办法(cmd)

如果创建完用户之后Navicat可以赋权限的话还是尽量用Navicat,如果用命令行赋值的话可能要麻烦一些

create user '//这里是你需要创建的用户的名字'@'localhost' identified by '//单引号里是你mysql的密码';

用创建 mysql.infoschema 举例:

create user 'mysql.infoschema'@'localhost' identified by '123456';
create user 'mysql.session'@'localhost' identified by '123456';
create user 'mysql.sys'@'localhost' identified by '123456';

前言:给用户赋权限,这里要啰嗦一下,有几种情况,博主试的前两种方法都报1064错误,提示语法有错误,所以一种不行就试另一种,具体为什么不行。。。我也不知道,另外如果前三种有效的话还是用前三种,做后一种的话会缺少一个权限,但是不知道是哪个权限,最后都操作完,如果还是没有,用

FLUSH PRIVILEGES;

去刷新!!

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”;

这里权限可以用 all 来代替表示全部权限,还可以用 *.* 来代表数据库名.表名

grant all privileges on 数据库名.表名.* to 'mysql.infoschema'@localhost identified by '密码';
grant all privileges on *.* to 'mysql.infoschema'@localhost identified by '密码';
grant grant option on *.* to 'mysql.infoschema'@'localhost';
//分开敲(复制)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'mysql.infoschema'@'localhost';
grant all on *.* to 'mysql.infoschema'@'localhost';

最后还是没有的话记得刷新

FLUSH PRIVILEGES;

如果还是不行,请看评论区各位兄弟的解决办法,最后如果还是不行,对不起,博主个人能力有限,请兄弟再多查阅一番,如果问题解决了。请一定回来指点一下博主或者与博主分享你解决的过程,让博主 “开阔眼界” ,我真的非常感谢

返回目录


推荐BGM: deja vu

这个错误是由于MySQL数据库中的用户定义者(definer)不存在导致的。用户定义者指的是在创建或修改存储过程、触发器等对象时指定的用户。根据引用和引用,解决这个错误的方法是创建一个名为'mysql.infoschema'的用户,并授予对所有数据库的所有权限。具体的操作步骤如下: 1.MySQL中执行以下命令创建用户: CREATE USER 'mysql.infoschema'@'localhost' IDENTIFIED BY '123456'; 2. 授予该用户对所有数据库的所有权限: GRANT ALL PRIVILEGES ON *.* TO 'mysql.infoschema'@'localhost'; 3. 刷新权限以使更改生效: FLUSH PRIVILEGES; 如果你在远程连接数据库时遇到"plugin caching_sha2_password could not be loaded"错误,你可以尝试通过修改密码加密插件来解决。执行以下命令: ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 这样,你就创建了一个名为'mysql.infoschema'的用户,并为该用户授予了必要的权限,同时也解决了相关的报错信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MYSQL 8.0.19 报The user specified as a definer (mysql.infoschema@localhost) does not exist](https://blog.csdn.net/caimo/article/details/109281497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [linux mysql8.0 ERROR 1449(HY000):- The user specified as a definer (mysql.infoschema@localhost...](https://blog.csdn.net/zhuiguhenman/article/details/125726214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼陀罗.feng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值