本文编写于 544 天前,最后修改于 543 天前,其中某些信息可能已经过时。

在腾讯云那买了个CDB,用来装支付类的数据。为确保稳定,灵机一动,在Centos7上搭建MySQL做腾讯云CDB从库。

本教程需要:
vps上装有mysql5.6(因为我是5.6,所以以我为准)
MySQL安装教程请点我
腾讯云CDB
耐心

以下是教程:


首先连接上你的云数据库,执行以下sql语句:
为方便管理,添加一个账户,用户名为slave,密码为slave。账号密码可根据个人设置。

grant replication slave on *.* to 'slave'@'%' identified by 'slave';
flush privileges;

2、查询当前master的binlog 文件和Position点,并且记录下来,到后面会有用。

mysql> show master status;
FilePositionBinlog_Do_DBBinlog_Ignore_DBExecuted_Gtid_Set
mysql-bin.00000140000------------------------

1 row in set (0.06 sec)

此处提一句:腾讯云数据库默认开启gtid_set,所以稍后从库也要开启gtid_set否则会导致Slave_IO_Running: No

3、在你的vps上面执行ssh命令:

vi /etc/my.cnf

在[mysqld]下添加以下:(请复制的时候自行把注释去掉)

server-id = 2
log-bin=mysql-bin
replicate-do-db=dbname(需要同步的数据库名)
replicate-ignore-db=mysql,information_schema,performance_schema(不需要同步的数据库名)
port=3306(端口)
log_slave_updates=1(必须开启,否则会导致后面报错)
binlog_format=row
gtid_mode=ON(因为CDB开启了,所以从库必须开启)
enforce_gtid_consistency=ON

由于MySQL5.6的原因,开启了gtid后需要重启MySQL以生效。所以执行下面ssh命令

service mysqld restart

4、导入主库的数据
略,不会请百度如何导入数据

5、连接vps上面的数据库,并设置主从同步。

mysql->stop slave;
change master to master_host='你的云数据库地址', master_port=3306, master_user='云数据库账号',master_password='云数据库密码', master_log_file='mysql-bin.000001',master_log_pos=40000;

注意:此处的"master_log_file="和"master_log_pos="是刚刚在主库执行show master;时产生的

配置好之后,在从库执行sql语句:

start slave;

如果你看到

        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        Slave_IO_State: Waiting for master to send event

则说明开启成功。

教程结束,感谢看官。若有错误之处,欢迎指点。