修改mysql|修改mysql user用户名后出现找不到用户的问题(mysql view用户名问题)

服务器配置说明: 数据库db:duotun_com 表table: dt_product dt_user dt_company 数据库用户: grant all on *.* to 'public'@'%' identified by 'password' flush privileges;
操作: 1.用public'@'%'连接后新建视图view_product CREATE VIEW view_product AS SELECT * FROM dt_product WHERE edit_time > 1; 2.出于对安全性的考虑,删掉用户 'public'@'%',新建'public'@'192.168.0.%'用户; 3.退出Mysql后用mysql_dump -u public -h 192.168.0.2 -p duotun_com > duotun_com.sql; 报找不到用户'public'@'%'。这里让我百思不得其解,我已经给新用户加了对duotun_com的所有权限,还报这样的错误? 4.从控制台进入mysql后 show create view view_product: CREATE ALGORITHM=UNDEFINED DEFINER=`public`@`%` SQL SECURITY DEFINER VIEW `view_product` AS select ... 发现DEFINER=`public`@`%`,用alter view 修改其值,alter ALGORITHM=UNDEFINED DEFINER=`public`@`192.168.0.%` SQL SECURITY DEFINER VIEW `view_product` AS select ... 5.退出后用Mysql_dump能正常导出数据,搞定。 6.如果不改 view的DEFINER值的话,也不能在没有原来的用户的情况下使用该视图,报ERROR 1449 (HY000): The user specified as a definer ( 'public'@'%') does not exist。

    推荐阅读