代码改变世界

MySQL ERROR 1227 (42000)错误处理

  abce  阅读(7507)  评论(0编辑  收藏  举报

在还原数据库的时候,遇到以下报错:

1
ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation

从错误信息看,似乎是用户权限不够。但是,实际上不是权限的问题。

解决方案1:

重新mysqldump一份数据,在导出的时候,加上参数--set-gtid-purged=OFF,禁掉全局事务标识符。全局事务标识符会导致这个错误。

 

比如:

1
mysqldump --set-gtid-purged=OFF dbname > dump.sql


解决方案2:
直接修改备份生成的dump文件,移除其中的一些行。
在修改之前,建议将备份文件再做一次备份。

移除以下三行:

1
2
3
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '';
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;

 

然后再重新还原数据。

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2015-11-30 MSSQL 2012 拒绝了对对象 'extended_properties' (数据库 'mssqlsystemresource',架构 'sys')的 SELECT 权限
2015-11-30 EBS R12.2 创建应用层的启动和关闭脚本
2015-11-30 EBS R12.2应用层启动脚本的执行过程
2015-11-30 EBS R12.2应用层关闭脚本的执行过程
点击右上角即可分享
微信分享提示