zoukankan      html  css  js  c++  java
  • RDS MySQL权限问题

    RDS MySQL权限问题(错误代码:1227,1725)

    RDS MySQL报错完整的信息:

    [Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation (常见于MySQL 5.6)

    ERROR 1725 (HY000) at line 1936: OPERATION need to be executed set by ADMIN (常见于MySQL 5.5)

    通常以下操作会引起出现这个错误:

    1. 在创建 存储过程、函数、触发器、事件、视图的时候出现这个错误。

    2. 从本地数据库导出SQL,在RDS上应用该SQL的时候出现该错误。

    3. 从RDS MySQL 5.6实例下载逻辑备份,导入到RDS或本地数据库中。

    原因是SQL语句中含有对root或其他用户的引用,而实际SQL执行过程中无相应用户的权限,因此需要去除这类语句。

    具体如下:

    1. 检查SQL文件,去除下面类似的子句:

    DEFINER=`root`@`%

    在Linux平台下,可以尝试使用下面的语句去除:

    sed -e 's/DEFINER[ ]*=[ ]*[^*]**/*/ 'user.sql > user_revised.sql

    2. 检查SQL文件,去除下面类似的语句:

    SET @@GLOBAL.GTID_PURGED='d0502171-3e23-11e4-9d65-d89d672af420:1-373,
    d5deee4e-3e23-11e4-9d65-d89d672a9530:1-616234';

    在Linux平台,可以使用下面的语句去除

    sed '/GTID_PURGED/N;s/, /,/' user_db.sql | grep -iv 'set @@'> user_db_revised.sql

    修改后再进行测试使用。

  • 相关阅读:
    JavaScript事件处理
    JavaScript模拟"类"的三种方法
    非构造函数的继承和拷贝
    构造函数的继承
    vim开发环境
    socket之非阻塞
    网络编程
    多线程
    消息队列
    信号
  • 原文地址:https://www.cnblogs.com/zenghui940/p/5144421.html
Copyright © 2011-2022 走看看