mysql错误1227_mysql导数据遇到错误提⽰
ERROR1227,Acessdenied
作者:天⼀阁图书管理员
今天⾥有前同事在问mysqldump出来的sql⽂件在导⼊的时候,报错error1227(42000)at line 18: Acess denied; you need (at least one of) the SUPER privilege(s) for this operation
定位到18⾏显⽰的是⼀个这样的语句: set @@session.sql_log_bin=0;
按正常情况来说是不会出现这种情况的,这个语句只是控制当前session的查询是否写⼊binlog。⾥的⼈都觉得这个问题很奇怪。
access转mysql教程视频
解决⽅案1:
⼤家看到既然是权限问题,那么就提权吧,或者使⽤root吧。但是前同事说是跳板机转过去的,没有办法⽤root,⽽提权和授权(grant)也需要root权限。⽅案1被否。
解决⽅案2:
既然不能⽤root,只能想其它办法了,但是我疑惑的是,为什么会出现⽤户⽆法控制⾃⼰的session变量的情况?于是搜索了⼀下,跳到mysql官⽹,到这样⼀段描述:
sql_log_bin
注意最后⼀⾏,上⾯说MySQL5.7有个bug,⽆法在⼦查询或者事务中执⾏set @@session.sql_log_bin。但是尽信书不如⽆书,我⾃⼰在mysql中执⾏了⼀下:
mysql> select version();
+-------------------------+
| version() |
+-------------------------+
| 5.7.16-0ubuntu0.16.04.1 |
+-------------------------+
1 row in set (0.00 sec)
mysql> set @@session.sql_log_bin=0;
Query OK, 0 rows affected (0.03 sec)
说明这个bug已经修复了,那这个同事⽤的mysql版本是不是声名狼藉的mysql5.6?让他确认了⼀下,确实是5.6。到此问题的根源到了,解决⽅法也就有了。直接删除sql中所有的set @@session.sql_log_bin语句就可以了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。