如何处理 mysql 报错 The user specified as a definer ('root'@'%') does not exist

项目开发中,经常会遇到数据库的迁移。但是如果迁移过去的数据库,没用之前创建该数据库的用户,在执行视图或者存储过程的时候会报:1449 The
user specified as a definer (‘root’@’%’) does not exist那么,我们该如何解决呢??

The user specified as a definer (‘root’@’%’) does not exist
(指定为定义者的用户(根’@’%’)不存在) 此种报错主要是针对访问视图文件引起的(没有权限)

解决方法:

  1. 进入dos命令窗口
    在这里插入图片描述

  2. 然后进入mysql的安装路径,要确保你的mysql服务是开启的;

    在DOS命令窗口输入 mysql -hlocalhost -uroot -p密码 回车
    在这里插入图片描述
    解析:

    在DOS命令窗口输入 mysql -hlocalhost -uroot -p回车 进入mysql数据库,

    其中-h表示服务器名,localhost表示本地;

    -u为数据库用户名,root是mysql默认用户名;

    -p为密码,如果设置了密码,可直接在-p后链接输入,如:-p123456,用户没 有设置密码,显示Enter password时,直接回车即可。

    注意,如果你的mysql没有安装在C盘下,你需要先使用DOS命令进入mysql的 安装目录下的bin目录中。

方法如下:输入D:进入D盘,在输入cd D:\Program Files (x86)\MySQL\MySQL Server 5.7\bin
进入到mysql的bin目录下才可以输入 mysql -hlocalhost -uroot -p

  1. 给mysql添加权限
    在这里插入图片描述
    解析:

    权限问题,授权 给 root 所有sql 权限

	mysql> grant all privileges on *.* to root@"%" identified by ".";
	Query OK, 0 rows affected (0.00 sec)
	mysql> flush privileges;
	Query OK, 0 rows affected (0.00 sec)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值