最近公司准备公司的整套架构从IDC机房向云上迁移,在RDS上做数据库恢复的时候遇到如下的问题:

[root@vm10-136-58-79 ~]# mysql -uadmin -h 10.137.212.36 -p </root/mysql_dump.sql

Enter password:

ERROR 1227 (42000) at line 78664: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

备注:金山云没有给mysql的管理员root的密码,而是给了一个管理用户admin

排查思路:

  1. 重视报错信息

  2. 登录RDS,查看mysql相关的用户和权限信息

mysql> select user,host,password from mysql.user;
+--------------+-----------+-------------------------------------------+
| user         | host      | password                                  |
+--------------+-----------+-------------------------------------------+
| root         | localhost | *9F9F6951C3EA2E9CEA830C3A3102949B51548ECE |
| rdsrepladmin | %         | *EAA4FB76B6D0776B5CAA760B6A754C5D61CCFCED |
| rdsadmin     | localhost | *843E8882BD0547FD0B7109D70C4A1CF82038D1F3 |
| admin        | %         | *9BEFFE73220FACA3F2AC73B58059B1894609877B |
+--------------+-----------+-------------------------------------------+

admin的权限如下所示:

mysql> select *  from mysql.user\G
*************************** 1. row ***************************Host: localhostUser: rootPassword: *9F9F6951C3EA2E9CEA830C3A3102949B51548ECESelect_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: authentication_string:
*************************** 2. row ***************************Host: %User: rdsrepladminPassword: *EAA4FB76B6D0776B5CAA760B6A754C5D61CCFCEDSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: N
Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: authentication_string: NULL
*************************** 3. row ***************************Host: localhostUser: rdsadminPassword: *843E8882BD0547FD0B7109D70C4A1CF82038D1F3Select_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: authentication_string: NULL
*************************** 4. row ***************************Host: %User: adminPassword: *9BEFFE73220FACA3F2AC73B58059B1894609877BSelect_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: NProcess_priv: YFile_priv: NGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: NCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Nssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: authentication_string: NULL

从上述内容可以看出:管理用户admin并没有Super_priv权限,如何给admin用户增加super权限?

3.查看mysql_dump.sql文件:

[root@vm10-136-58-79 ~]# vim mysql_dump.sql.bak(重点看如下几行)

78628 /*!50001 CREATE ALGORITHM=UNDEFINED */

78629 /*!50013 DEFINER=`boco_guest`@`%` SQL SECURITY DEFINER */

78630 /*!50001 VIEW `temp_district` AS select `district`.`id` AS `id`,`district`.`cityId` AS `cityId`,`district`.`Name` AS `Name`,`district`.`po      stCode` AS `postCode` from `district` group by `district`.`cityId` */;

78631 /*!50001 SET character_set_client      = @saved_cs_client */;

78632 /*!50001 SET character_set_results     = @saved_cs_results */;

78633 /*!50001 SET collation_connection      = @saved_col_connection */;

原本认为 78628 /*!50001 CREATE ALGORITHM=UNDEFINED */这个是注释语句不会执行,可是为什么执行到这附近报错了呢?

mysql /*!50001 注释解释
在MySQL里,多行解释 是 /* */,这个是SQL的标准
但是MySQL扩张了解释 的功能
假如 在起头的/*后头加了惊叹 号,那么此解释 里的语句将被推行
比如
mysql> /*! select * from test */;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)再看如下语句
/*!50001 select * from test */;
这里的50001表示假如 数据库是5.00.01以上版本,该语句才会被推行
因此固然 你的mysqldump出来的成立 view的语句在解释 里,实际 上它是会被推行 的假如 是一下内容,就不会推行 了,那是真正的解释 了
/* select * from test */;
原文地址:http://www.educity.cn/wenda/399480.html

网上搜索了好久都没有解决,最后在阿里云常见问题中找到了答案:http://help.aliyun.com/knowledge_detail/5989721.html?spm=5176.788314909.3.8.xC9pCQ

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/,\n/,/' user_db.sql | grep -iv 'set @@global' > user_db_revised.sql
修改后再进行测试使用。

根据上文的提示:我的具体操作如下:

1.[root@vm10-136-58-79 ~]# cat -n mysql_dump.sql |grep DEFINER78629/*!50013 DEFINER=`boco_guest`@`%` SQL SECURITY DEFINER */78647/*!50013 DEFINER=`boco_guest`@`%` SQL SECURITY DEFINER */78665/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */78683/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */78701/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */78719/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */78737/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
2.编辑mysql_dump.sql文件,手动去除以上7行内容
3.再次执行如下语句:
[root@vm10-136-58-79 ~]# mysql -uadmin -h 10.137.212.36 -p </root/mysql_dump.sql
Enter password:
[root@vm10-136-58-79 ~]# [root@vm10-136-58-79 ~]# mysql -uadmin -h 10.137.212.36 -p -e "show databases;"
Enter password:
+--------------------+
| Database           |
+--------------------+
| information_schema |
| csip_pline_e000001 |
| csip_store         |
| db_pms             |
| mysql              |
| performance_schema |
| ysc0001            |
+--------------------+
至此,问题解决。参考文章:
http://www.educity.cn/wenda/399480.html
http://help.aliyun.com/knowledge_detail/5989721.html?spm=5176.788314909.3.8.xC9pCQ
阿里云相关技术问题文档:http://help.aliyun.com/knowledge_list/8314905.html?spm=5176.768314883.1863381.391.DRStz2

转载于:https://blog.51cto.com/5250070/1683762

RDS还原数据库时报错:ERROR 1227 (42000) at line 78664相关推荐

  1. mysql导入sql文件、数据库时报错ERROR: ASCII ‘\0‘ appeared in the statement

    mysql导入sql文件.数据库时报错ERROR: ASCII '\0' appeared in the statement

  2. Mysql导入数据库时报错ERROR: Unknown command '\0'

    文章目录 前言 测试环境 数据库版本 系统版本 问题出现过程 问题结果过程 总结 前言 之前查询数据问题时多次使用过数据库导出导入命令,从来没发生过这种错误,那是一个风和日丽的上午,忽然来了一个紧急的 ...

  3. mysql导入sql文件、数据库时报错ERROR: ASCII '\0' appeared in the statement

    window环境下mysql导入sql文件时报错:ERROR: ASCII '\0' appeared in the statement 错误原因 文件编码不正确 解决办法 下载UltraEdia对文 ...

  4. mysql 创建数据库时报错 error 1044

    自从有了叁贰壹的教程,妈妈再也不用担心我的学习了 报错 error 1044 : Access denied for user ''@'localhost' to database 'mysql' 编 ...

  5. 关于MySQL还原数据库时报错

    有些同学在数据库备份,与还原这一块总是操作不成功 其实就是对整个流程不了解,以及MySql命令与Shell命令切换使用不正确. 所以才会导致老是报错,怎么都执行不成功! 第一步: 必须在Shell命令 ...

  6. mysql 还原数据库时报错

    前言 mysql版本:5.7 mysql还原sql文件报错有很多种情况,下面这种应该是通常的: mysql限制了Server接受的数据包大小,导致大量数据的插入和更新会受 max_allowed_pa ...

  7. mysql数据还原时报错_还原mysql数据库时报错

    环境说明: 1.操作系统: aaa@ubuntu:~$ cat /etc/issue Ubuntu 12.04.3 LTS \n \l 2.内核版本: aaa@ubuntu:~$ uname -a L ...

  8. 解决mysql报错ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

    问题:登录mysql后使用正常sql命令时报错 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql ...

  9. 已解决mysql报错ERROR 1049 (42000): Unknown database ‘数据库‘

    已解决mysql报错ERROR 1049 (42000): Unknown database '数据库' 文章目录 报错问题 解决方法 福利 报错问题 粉丝群里面的一个小伙伴敲代码时发生了报错(当时他 ...

最新文章

  1. 文件列表出现分页按钮
  2. zabbix 监控项自动发现过滤_Zabbix监控之配置Linux自动发现与自动注册报警
  3. python3爬虫实例-自己动手,丰衣足食!Python3网络爬虫实战案例
  4. cmd怎么运行http_Scrapy源码剖析(二)Scrapy是如何运行起来的?
  5. Apache + PHP为什么不能在www目录下写文件以及如何解决PHP写文件问题
  6. boost::lambda模块实现boost::function 进行测试
  7. [Java基础]字节缓冲流
  8. 『 Luogu P3205 』 HNOI2010 合唱队
  9. linux 获取本机的所有IP地址
  10. office 2003和office 2013同时安装使用的问题
  11. 苏炳添成为小米代言人
  12. JUnit5 Maven 依赖项
  13. Java基础教程:dubbo源码解析-服务暴露与发现
  14. 【python进阶】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  15. python cfg文件解析
  16. 斐讯R1音箱安装悟空遥控,并实现DLNA推送
  17. flink 消费 kafka offset 自动提交
  18. 手把手教你用 Python 下载手机小视频
  19. 非机动车检测数据集(用于训练目标跟踪)
  20. 学python适合做什么生意_吹爆这8个Python练手小项目,轻松易学

热门文章

  1. Python实现字符串对齐
  2. maven下设置默认jdk版本和maven项目构建默认使用jdk版本
  3. java 三种错误类型 区别_请列举至少三种在java语言中发生“严重错误”的情况...
  4. B - Beautiful Paintings
  5. html字段值换行代码怎么写,HTML段落,换行,字符实体
  6. Spring Cloud Stream与RabbitMQ 消费者 消息分组
  7. ionic Toggle(开关控件)
  8. python pop函数 索引_[python] 字典和列表中的pop()函数
  9. mysql的局限_Mysql数据分区局限性大总结
  10. shell调用hive客户端导致nohup后台进程stopped