昨天迁移了一套库,导入没有报错,但是开发查看视图的时候发现有不正常
获取源端和现在的环境视图定义
源端

目标端

但是导入前后也没有任何报错,查看目标端error日志也没有报错日志
度娘了一下看了看,说是没有对应的用户或者用户,对比了一下目标端和源端,源端的用户是全部放开的,目标端有限制
如下是引用网上的介绍,参考链接 https://cloud.tencent.com/developer/article/1855979
创建时的用户没有相应的权限: ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation 创建时用户不存在调用时报错: ERROR 1449 (HY000): The user specified as a definer ('rolling-forecasting'@'%') does not exist
上面介绍的方法是在导出是把过程,视图,函数中的DEFINER=替换掉可以sed命令
更改导出sql
mysqldump -uroot -pAdmin@123 --databases personnel_cloud rolling_forecasting_prod system_feishu --add-drop-database --single-transaction --max_allowed_packet=2048M --routines --events |sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' -e 's/DEFINER[ ]*=.*FUNCTION/FUNCTION/' -e 's/DEFINER[ ]*=.*PROCEDURE/PROCEDURE/' -e 's/DEFINER[ ]*=.*TRIGGER/TRIGGER/' -e 's/DEFINER[ ]*=.*EVENT/EVENT/' |gzip > rollingdb20241017.sql.gz
重新导入后查看一个视图的定义,发现视图正常,达到预期的目的


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




