<li id="c4loq"><acronym id="c4loq"></acronym></li>

<button id="c4loq"></button>
    <dd id="c4loq"><pre id="c4loq"></pre></dd>

      <th id="c4loq"></th>

        <dd id="c4loq"></dd>

        幫助中心 > 數據庫 > 云數據庫MySQL > 常見問題 > RDS MySQL出現報錯
        RDS MySQL出現報錯

        RDS MySQL出現報錯

        問題描述

        ? 在創建存儲過程、函數、觸發器、事件、視圖的時候出現如下錯誤。
        ? 從本地數據庫導出SQL,在RDS上應用該SQL的時候出現如下錯誤。
        ? 從RDS MySQL 5.6實例下載邏輯備份,導入到RDS或本地數據庫中,出現如下錯誤,錯誤代碼為1227和1725。

        [Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation --常見于RDS MySQL 5.6 
        ERROR 1725 (HY000) at line 1936: OPERATION need to be executed set by ADMIN --常見于RDS MySQL 5.5
        ERROR 1227 (42000) at line 2984: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
        

        問題原因

        ? 導入RDS MySQL實例時,SQL語句中含有需要Super權限的用戶才可以執行的SQL語句,而RDS MySQL不提供Super權限,因此需要刪除這類語句。
        ? 本地MySQL實例沒有啟用GTID。

        解決方案

        1,刪除DEFINER語句。

        ? 檢查SQL文件,刪除類似如下SQL語句。

        DEFINER=`root`@`%`
        

        ? 在Linux系統中,可以嘗試使用如下命令刪除。

        sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/ ' your.sql > your_revised.sql
        

        2,刪除GTID_PURGED語句。

        提示:也可以導出的時候在mysqldump命令后添加參數“--set-gtid-purged=off“來取消輸出GTID_PURGED子句。
        

        ? 檢查SQL文件,刪除類似如下SQL語句。

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

        ? 在Linux系統中,可以嘗試使用類似如下命令刪除。

        awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }' your.sql | grep -iv 'set @@' > your_revised.sql
        黄片免费无马赛克

        <li id="c4loq"><acronym id="c4loq"></acronym></li>

        <button id="c4loq"></button>
        <dd id="c4loq"><pre id="c4loq"></pre></dd>

          <th id="c4loq"></th>

            <dd id="c4loq"></dd>