问题现在还没有解决,原因是我的网站是放在一个空间里,数据库无法使用root登录,想在数据库里面新建个视图,可不会建,粘贴代码修改用户名也不成功,始终提示用户权限的问题,希望有高手帮忙解决一下
至于还原错误的问题,应该是权限的问题, 表还原应该没什么问题,一般 视图和存储过程的还原都会出点问题,都是因为不同用户造成的,有时甚至是因为root重名同名的问题,请看下面的视图和存储过程的DDL:
-- View "number_key_motif" DDL CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `number_key_motif` AS select .....; -- Procedure "left_5" DDL CREATE DEFINER=`root`@`localhost` PROCEDURE `left_5`() BEGIN ..... END; 看到了吧,视图和procedure的DDL都是带有Definer的信息的,而phpadmin/mysqladmin/navicat等管理工具在备份时都是直接把DDL语句导出的, 而再还原时肯定也是试图去执行那些DDL的,这样当然在本例中它们是尝试去用root的definer在另一台导入的服务器上去执行建视图,存储过程等操作的。 所以建议: 1.在不同服务器直接保持用户名的同一,尽量用同一用户名,当然是为了以后一些工具备份的方便了,这样不需要自己去改工具导出的SQL脚本中的definer的信息 2.尽量不要用root用户, 因为你不可能在你用的每台服务器上都可以使用root用户的 如实在想用,可自己使用另一服务器上的统一用户名, 然后给那用户赋予至高无上的,与root相同的权限 楼主的那个 “ERROR 1227 (42000) at line 5842: Access denied; you need the SUPER privilege for this operation ” 的错误应该是由于导入时遇到的DEFINER=`root` 等脚本的影响产生的吧 要SUPER 的privilege不差于已经拥有了root的所有权限了,你不可能要求租用的服务器的administrator给你那样的权限的 可以去新建与租用服务器上同用户名的用户××,然后改下自己要还原导入的脚本,把其中的root或一些特权用户 的字符全替换成×× 希望对你有帮助,因为我也曾经遇到过类似的导入还原的问题,后来这样解决了 编码乱码问题实在是繁琐,所以我的库里面就没有用中文了