Create a database user and provide the user with READ access to all the resources which need to be migrated. Replace <client_IP> from the following commands with an appropriate hostname in your setup.
-
Create a new user
ybvoyager.CREATE USER 'ybvoyager'@'<client_IP>' IDENTIFIED WITH mysql_native_password BY 'Password#123'; -
Grant the global
PROCESSpermission.GRANT PROCESS ON *.* TO 'ybvoyager'@'<client_IP>'; -
Grant the
SELECT,SHOW VIEW, andTRIGGERpermissions on the source database:GRANT SELECT ON source_db_name.* TO 'ybvoyager'@'<client_IP>'; GRANT SHOW VIEW ON source_db_name.* TO 'ybvoyager'@'<client_IP>'; GRANT TRIGGER ON source_db_name.* TO 'ybvoyager'@'<client_IP>';Note that if you want to accelerate data export, include the following grants additionally as follows:
For MYSQL
GRANT FLUSH_TABLES ON *.* TO 'ybvoyager'@'<client_IP>'; GRANT REPLICATION CLIENT ON *.* TO 'ybvoyager'@'<client_IP>';For MYSQL RDS
GRANT FLUSH_TABLES ON *.* TO 'ybvoyager'@'<client_IP>'; GRANT REPLICATION CLIENT ON *.* TO 'ybvoyager'@'<client_IP>'; GRANT LOCK TABLES ON <source_db_name>.* TO 'ybvoyager'@'<client_IP>'; -
If you are running MySQL version 8.0.20 or later, grant the global
SHOW_ROUTINEpermission. For older versions, grant the globalSELECTpermission. These permissions are necessary to dump stored procedure/function definitions.--For MySQL >= 8.0.20 GRANT SHOW_ROUTINE ON *.* TO 'ybvoyager'@'<client_IP>';--For older versions GRANT SELECT ON *.* TO 'ybvoyager'@'<client_IP>';The
ybvoyageruser can now be used for migration.
If you want yb-voyager to connect to the source database over SSL, refer to SSL Connectivity.