修改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。

你可能感兴趣的:(修改mysql user用户名后出现找不到用户的问题(mysql view用户名问题))