mysql - Access denied; you need (at least one of) the SUPER privilege(s) for this operation

mysql – Access denied; you need (at least one of) the SUPER privilege(s) for this operation

mysql – Access denied; you need (at least one of) the SUPER privilege(s) for this operation

Either remove the DEFINER=.. statement from your sqldump file, or replace the user values with CURRENT_USER.

The MySQL server provided by RDS does not allow a DEFINER syntax for another user (in my experience).

You can use a sed script to remove them from the file:

sed s/sDEFINER=`[^`]*`@`[^`]*`//g -i oldfile.sql

If your dump file doesnt have DEFINER, make sure these lines below are also removed if theyre there, or commented-out with --:

At the start:

-- SET @@SESSION.SQL_LOG_BIN= 0;
-- SET @@GLOBAL.GTID_PURGED=/*!80000 +*/ ;

At the end:

-- SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;

mysql – Access denied; you need (at least one of) the SUPER privilege(s) for this operation

Another useful trick is to invoke mysqldump with the option --set-gtid-purged=OFF which does not write the following lines to the output file:

SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED=/*!80000 +*/ ;
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;

not sure about the DEFINER one.

Related posts on My Sql :

Leave a Reply

Your email address will not be published.