I am logged in to AWS RDS database using MySQL Workbench.
MySQL version: 8.0.35 Logged in using master user: admin@'%'
We do a replication from Master to Slave between a Windows Server and another Windows Server:
Windows Server (MySQL - Master) --> Windows Server (MySQL - Slave)
As we've changed to AWS, now we need to do the same replication but from RDS to a Windows server:
AWS RDS (MySQL - Master) --> Windows Server (MySQL - Slave)
To do the replication we run the following command:
CHANGE MASTER TO MASTER_HOST='123.123.12.12',
MASTER_USER='user',
MASTER_PORT=3306,
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='binlog.000004',
MASTER_LOG_POS=7947 FOR CHANNEL '123.123.12.12';
START SLAVE FOR CHANNEL '123.123.12.12';
Error: Error Code: 1227. Access denied; you need (at least one of) the SUPER or REPLICATION_SLAVE_ADMIN privilege(s) for this operation
RDS user is master user (admin), there is another user rdsadmin, but is private to localhost. RDS does not give SUPER privilegies to admin user.
1 - Is there a way to give SUPER/REPLICATION_SLAVE_ADMIN privilegies to admin user, or through parameter group?
2 - If not, isn't it possible to do Master/Slave replication on RDS?
RDS doesn't grant users the SUPER privilege, even to the root user.
Instead, AWS RDS implements a set of stored procedures to control replication. You can call the procedures, and the procedures manage replication in the manner prescribed by AWS.
See https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-stored-proc-replicating.html for documentation on these procedures.