我常用的工具是navicat,但是修改definer不能用工具,只能用命令行: 数据库迁移到其他服务器上,会报definer错误,修改view的definer方法如下(比如把definer改为本地的,要加上select语句): 第一种方法: alter DEFINER = 'root'@'localhost' view BMS_HOTEL_SALES_V as select `hc`.`CHECK_DATE` AS `CHECK_DATE`,`hsm`.`START_DATE` AS `STAR
今天在一个修改过权限的MySQL数据库遇到了"ERROR 1045 (28000): Access denied for user 'xxx'@'xxx.xxx.xxx.xxx' (using password: YES)"和"ERROR 1449 (HY000): The user specified as a definer ('xxx'@'xx') does not exist" 错误,花了点时间研究并重现该错误,并将其整理在此篇文章. 在测试数据库MyDB,
最近在做一个项目,由于服务器切换,所以需要将原有服务器的mysql数据表以及存储过程导入到另一个服务器的mysql数据库中.导入完成之后以为一切是那么的简单,却没有想到总还是出现了一些莫名其妙的问题. 我在用程序调用存储过程时,总是提示错误: The 查看了自己mysql的用户表后,发现确实没有test这个用户,但是我程序用的是root登录的,所以感觉有些莫名其妙. 后来通过查资料发现,是由于自己存储过程设置的安全性为definer,而当时的那个数据库存在test这个用户且用的test用户创建的