使用了Amazon AWS EC2免费云空间,数据库实例采用Amazon RDS。原来在Windows Server上有一个存在大量数据的MySQL数据库。现在需要在Amazon RDS上还原这个MySQL数据库,勾掉Views(因为它会要求SUPER权限,而Master User无此权限,毕竟是托管的RDS),只留下Tables,如下图(使用Navicat):

图1:勾掉Views,因为RDS上的Masteruser无Super权限,无法还原Views对象

但在还原时,仍然出现如下的错误信息:

You do not have the SUPER privilege and binary logging is enabled (you *might* want to to use the less safe log_bin_trust_function_creators variable)

经查询,是log_bin_trust_function_creators值为off导致,因为Table中有Trigger,如果不创建Trigger,不会出现这样的错误信息,但Trigger必须创建,在网络查询解决方案,是如下的办法:

使用设置命令:

set global log_bin_trust_function_creators=1; 

但由于没有Super权限而无法完成。

永久解决方案如下:

 linux系统, 在/etc/my.cnf 文件中,[mysqld]部分加上:
 windows系统,在my.ini文件中,[mysqld]部分加上:
log_bin_trust_function_creators=1

就可以还原上备份数据库表中的Trigger。

实际情况是,对于Amazon RDS,是傻瓜型的配置,不允许用户配置my.cnf(也根本找不到这个文件),所以,配置办法是对其中的Parameter进行配置,从而对MySQL实例进行操作。在Parameter Group中,添加一个(注:默认的Parameter Group是无法修改的),命名后进行修改,将log_bin_trust_function_creators值设置为1;

Amazon RDS对参数配置的方法有三种,具体可参考http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html

控制台方式(AWS Management Console);

命令行方式(CLI);

API方式;

这里使用控制台方式解决:

1、在RDS控制台,右边导航栏有“Parameter Groups”链接,点击“Create DB Parameters Group”,创建“Parameters Group”

2、选择版本、名称和描述

3、创建好以后,即可对里面的参数进行编辑(强调:MySQL默认的Parameter Group是无法编辑参数),这里是将log_bin_trust_function_creators值由default改为1,保存退出;

4、新创建一个RDS实例,在“Configure Advanced Settings”中,Parameter Group选项的下拉列表中,选择刚刚创建并修改好的组,如下图:

图2:在新建的RDS Instance中,不使用默认的Parameter Group,而使用自己创建并编辑的组

4-1、或者,在已经创建的RDS实际中,选中一个实例,在界面顶部的“Instance Actions”下拉菜单中,点击“Modify”,对Parameter Group进行修改,如下图:

图3:对已经存在的Parameter Group进行修改(图片中未修改前的状态,为MySQL 5.6默认的Parameter Group)

5、坐等RDS实例创建完成(或修改完成)。

再进行数据库的Restore,包含Triggers的Table可以成功还原。

说明:对于Views,在Amazon RDS上由于没有SUPER权限无法自动还原。可以在Tables还原后,手工创建View并将源DB中的View定义复制过来。如果哪位网友有对Amazon RDS操作更好的办法,请回复说明。谢谢。

 

Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法的更多相关文章

  1. mysql中连接失败2003错误解决办法

    在使用mysql数据库,新建连接时,会报2003-Can't connect to server on 'localhost'(10038)错误,原因主要是MYSQL服务没有启动起来,但是进入:计算机 ...

  2. mysql 服务意外停止1067错误解决办法小结

    今天在配置服务器时安装mysql5.5总是无法安装,查看日志错误提示为1067错误,下面来看我的解决办法 事件类型: 错误 事件来源: Service Control Manager 事件种类: 无  ...

  3. MySQL出现GROUP BY clause错误解决办法

    #1)当mysql数据库出现如下错误:#which is not functionally dependent on columns in GROUP BY clause; this is incom ...

  4. MySQL数据库无法远程连接的解决办法

    远程登陆数据库的时候出现了下面出错信息: ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx', 经过今天下午的 ...

  5. (整)deepin下mysql的安装与部分错误解决办法

    deepin(深度)是国产Linux系统,程序员肯定要了解Linux系统啦,但是在程序安装上可能会有些不习惯,现在让我们来看看mysql在deepin上的安装过程. 1.傻瓜式命令行安装 这也是Lin ...

  6. linux下修改mysql数据库编码后无法启动解决办法

    linux下老版本的Mysql修改数据库编码的方法是 修改my.cnf vi /etc/my.cnf 在[client]下添加 default-character-set=utf8 在[mysqld] ...

  7. mysql数据库的锁表与解决办法(原博客url:http://www.cnblogs.com/wanghuaijun/p/5949934.html)

    MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level loc ...

  8. SQL还原备份数据库读取失败 38错误解决办法

    连接上数据库后新建查询执行以下命令: RESTORE DATABASE 还原后的数据库名 FROM DISK = 'D:\yjdb\pms_yj_20110722.bak(备份文件)' WITH RE ...

  9. 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法

    在微软云linux服务器成功配置好mysql.tomcat,通过外部链接却发现一直错误.Mysql 一直提示错误代码2003, tomcat连接一直提示EOF. 反复检查配置都无问题,最后得知是微软云 ...

随机推荐

  1. Android进程间的通信之AIDL

    Android服务被设计用来执行很多操作,比如说,可以执行运行时间长的耗时操作,比较耗时的网络操作,甚至是在一个单独进程中的永不会结束的操作.实现这些操作之一是通过Android接口定义语言(AIDL ...

  2. PHP获取页面执行时间的方法

    一些循环代码,有时候要知道页面执行的时间,可以添加以下几行代码到页面头部和尾部: 头部: <?php $stime=microtime(true); 尾部: $etime=microtime(t ...

  3. 影响google PageRank的因素

    1 与pr高的网站做链接: 2 内容质量高的网站链接 3 加入搜索引擎分类目录 4 加入免费开源目录 5 你的链接出现在流量大.知名度高.频繁更新的重要网站上 6 google对PDF格式的文件比较看 ...

  4. PHP的继承方法如何获取子类名

    http://blog.csdn.net/zls986992484/article/details/53154097 PHP后期静态绑定问题:例如 <?php class A { functio ...

  5. racle wm_concat(column)函数的使用

    oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat( ...

  6. 安装完ODAC,出现ORA-12560:TNS:协议适配器错误 12541 无监听程序的解决

    进入系统环境变量设置,查看Path路径,发现D:\oracle\product\11.2.0\client_1等路径放到了oracle11g数据库路径前面,将新加入的路径置后即可解决ORA-12560 ...

  7. 【C#】Excel做的数据表、SQLParameter代码生成工具

    转载请注明出处http://www.cnblogs.com/Vulpers/ 做了一个小的代码生成工具,用于新建数据表时能够快速生成一些重复性很高的代码,目前仅支持SqlServer数据库及C#语言, ...

  8. jQuery与其他JS库共存

    * 事件 * jQuery与其他JS库共存 * 调用jQuery.noConflict()方法 * 表示jQuery将"$"符号的使用权交出 * 通过两种方式将"$&qu ...

  9. Django提交POST表单“CSRF verification failed. Request aborted”问题的解决

    1.环境 python 3.4 Django 1.7 Visual Studio 2015 PTVS 2.问题 提交表单,出现以下错误: CSRF verification failed. Reque ...

  10. JavaScript-在当前显示区范围内实现点不到的小方块

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...