腾讯云Mysql 与 自己搭建的数据库做主从

步骤:

一、登录腾讯云 Mysql 的 管理页面,创建从服务器同步数据的账户

二、修改 ECS 服务器上的 my.cnf 配置(前提是服务器需要安装好 mysql)

在 /etc/my.cnf 中加入以下配置

#服务的id
server_id=211
 
#只读
read_only  = 1
 
#端口号
port = 3306
 
#复制要同步的数据库,可以并列写多个
replicate-do-db=db1
replicate-do-db=db2
 
#不进行同步的表,可以并列写多个
replicate-wild-ignore-table=db1.table1
replicate-wild-ignore-table=db2.table2
 
#忽略复制的数据库,可以并列写多个
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
 
#日志格式(Statement,Row,Mixedlevel)
binlog_format  = ROW
 
#开启日志
log-bin         = mysql-bin
 
#操作日志
log-bin-index      = mysql-bin.index
relay-log        = relay-log
relay_log_index     = relay-log.index
 
#GTID配置
#是否开启GTID功能
gtid_mode=on
enforce_gtid_consistency=on
#同步主库操作日志
log-slave-updates = 1
 
#跳过所有错误,这个参数至关重要,想要研究这个参数的作用,可以先不写,看看发生什么
slave-skip-errors = all

图片.png

如云上mysql版本为5.7及以上需要开启 MySQL GTID

MySQL GTID
是在传统的mysql主从复制的基础之上演化而来的产物,即通过UUID加上事务ID的方式来确保每一个事物的唯一性。这样的操作方式使得我们不再需要关心所谓的log_file和log_Pos,只是简单的告诉从库,从哪个服务器上去找主库就OK了。简化了主从的搭建以及failover的过程,同时比传统的复制更加安全可靠。由于GTID是连续没有空洞的,因此主从库出现数据冲突时,可以通过注入空事物的方式进行跳过。

三、重启 mysql 服务

service mysqld restart

四、复制腾讯云 mysql 中对应的数据库,并导入到 从库的 Mysql 中的数据库(对应的数据库需要先创建)

mysqldump -uroot -pxxx gz-cdb-xxxxxx.sql.tencentcdb.com(IP也可以) --master-data=2 -R --set-gtid-purged=OFF --databases test>mylave.sql

五、登录 slave 从数据库

mysql -u root -p xxxx

CHANGE MASTER TO 
MASTER_HOST='Master地址', 
MASTER_PORT=端口号,     
MASTER_USER='userName',  
MASTER_PASSWORD='password',
MASTER_LOG_FILE='上面查到的file', 
MASTER_LOG_POS=0;//第一次同步时从MASTER_LOG_FILE文件中的什么位置开始,一般设为0就可以
123456789

七、slave中启动主从同步:start slave;

八、查看同步的情况

show slave status \G;

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: gz-cdb-86v722bt.sql.tencentcdb.com
                  Master_User: myalave
                  Master_Port: 60734
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 1821
               Relay_Log_File: relay-log.000004
                Relay_Log_Pos: 360
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
            ...

标题:腾讯云Mysql 与 自己搭建的数据库做主从
作者:LeeOcean
地址:https://www.leiocean.com/articles/2020/09/10/1599729735426.html

    评论
    0 评论
avatar

取消