zoukankan      html  css  js  c++  java
  • Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法

    使用了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操作更好的办法,请回复说明。谢谢。 

     
  • 相关阅读:
    linux mint系统 cinnamon桌面 发大镜功能
    解决sublime 的 package control 问题here are no packages available for installation
    python Tkinter 的 Text 保持焦点在行尾
    pyhton 下 使用getch(), 输入字符无需回车
    python3.5 安装twisted
    SPOJ bsubstr
    AVL的删除写法的一个错误
    病毒侵袭持续中
    POJ2778 DNA sequence
    HDU3068 最长回文串
  • 原文地址:https://www.cnblogs.com/wusir/p/3785340.html
Copyright © 2011-2022 走看看