博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Access denied; you need the SUPER privilege for...
阅读量:6688 次
发布时间:2019-06-25

本文共 1172 字,大约阅读时间需要 3 分钟。

hot3.png

问题现在还没有解决,原因是我的网站是放在一个空间里,数据库无法使用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或一些特权用户 的字符全替换成××
希望对你有帮助,因为我也曾经遇到过类似的导入还原的问题,后来这样解决了
编码乱码问题实在是繁琐,所以我的库里面就没有用中文了

转载于:https://my.oschina.net/shunshun/blog/88633

你可能感兴趣的文章
利用blink CEP实现流计算中的超时统计问题
查看>>
我的友情链接
查看>>
再谈运维的本质是什么
查看>>
jQuery上传插件Uploadify出现Http Error 302错误解决
查看>>
粗心导致的错误 TNS-03505: Failed to resolve name
查看>>
JSP第三次课内容:JSP实现宠物店设计
查看>>
find详解
查看>>
xargs 和 exec
查看>>
Neutron - Automatic network mtu
查看>>
nodejs 定时调用shell脚本来备份数据库和日志文件并发送到邮箱
查看>>
Exchange 2016部署实施案例篇-01.架构设计篇(上)
查看>>
ajax传递json格式,spring MVC用对象接受
查看>>
AngularJs 指令directive之controller,link,compile
查看>>
线上处理Waiting for table metadata lock
查看>>
授之以渔-运维平台应用模块二(Vmware控制台篇)
查看>>
三对角矩阵
查看>>
判断是否是微信中打开网页
查看>>
单例模式的有缺点
查看>>
perl基础1
查看>>
chrome浏览器如何通过js判断是否安装了某扩展?
查看>>