腾讯云提供了一种解决跨mysql实例读写的方法,主要是通过在两个mysql实例之间建立一个解析器(Replica)来实现。
mysql> CREATE USER 'repl' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* to 'repl'@'%' IDENTIFIED BY 'password'; mysql> FLUSH PRIVILEGES; mysql> CHANGE MASTER TO MASTER_HOST='source_host', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='record_file_name', MASTER_LOG_POS=record_file_position, MASTER_CONNECT_RETRY=60; mysql> START SLAVE;
以上是在源数据库上配置,接下来是在目标数据库上的配置。
mysql> CREATE USER 'repl' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* to 'repl'@'%' IDENTIFIED BY 'password'; mysql> FLUSH PRIVILEGES; mysql> CHANGE MASTER TO MASTER_HOST='source_host', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='record_file_name', MASTER_LOG_POS=record_file_position, MASTER_CONNECT_RETRY=60; mysql> START SLAVE;
上述配置中,需要注意的是“record_file_name”和“record_file_position”这两个参数,需要根据源数据库的参数来进行调整。
最后,也需要针对源数据库进行相关配置,以允许来自目标数据库的读请求。
mysql> CREATE USER 'user'@'client_host' IDENTIFIED BY 'password'; mysql> GRANT SELECT ON db.* TO 'user'@'client_host'; mysql> FLUSH PRIVILEGES;
这样,就可以使用目标数据库的用户名和密码,来在腾讯云mysql数据库中进行跨实例的读请求。