【MySQL】ERROR 1449 (HY000) at line 1: The user specified as a definer (‘skip-grants user’@’skip-grants host’) does not exist

xixuefeng MySQL, MySQL-DEV 2019-05-08 10:08:08 2,178 次浏览 【MySQL】ERROR 1449 (HY000) at line 1: The user specified as a definer (‘skip-grants user’@’skip-grants host’) does not exist已关闭评论

通过shell调用存储过程,定期做一些对表的操作,具体做什么不重要,主要是这个过程,每天定时调用shell调用MySQL的存储过程,突然有一天就报如题的错误(当然,在命令行下直接调用过程也是报同样的错误)。

错误很明确,定义的用户不存在,那么问题是:1:之前一直没有问题;2:压根也没这么一个用户

回想一下,我只做了一个操作,就是将MySQL的参数文件加了skip-grant-tables这个参数(公司内部测试环境,所以为了方便及某种测试,所以加了这个参数。生产环境是绝对不允许使用这个参数的。)

查看一下存储过程的DDL,也就是存储过程的创建语句,大致如下:

看到这个就明白了,原来之前一直使用skip-grant-tables这个参数,导致同事在创建过程登录数据库时,直接mysql登录的,登陆后创建的过程,用户就是skip-grants user@skip-grants host这个东西。

解决:既然参数问价中已经把skip-grant-tables这个参数去掉了,那么重新再创建一下这个过程就好了。

回顶部