欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

腾讯云服务器与虚拟机搭建主从分离数据库

程序员文章站 2024-03-20 21:40:28
...

测试环境

主数据库: CentOS7, MySQL15.1 , 腾讯云服务器外网IP

从数据库: CentOS7, MySQL15.1 , 虚拟机IP(无关紧要)

 

首先安装好mysql 我之前安装的lnmp 所以挺多指令都挺简单的

lnmp可以去百度安装 我这里就不做说明了

先配置mysql的数据配置

vim /etc/my.cnf

打开之后 找到一个 [mysqld] 在这个里面去新增配置(下面就是你要设置的主配置了) 编辑命令: i

主数据库配置

server-id=200  #设置主服务器的ID 
innodb_flush_log_at_trx_commit=2  #事务处理时 写进log速度 0:速度最快不安全 1:最安全速度慢 2:速度快也安全
sync_binlog=1  #开启binlog日志同步功能
log-bin=mysql-bin-200  #binlog日志文件名
binlog-do-db=test  #这个表示只同步某个库 (如果没有此项,表示同步所有的库)(这里的test表示我同步是test库)

腾讯云服务器与虚拟机搭建主从分离数据库

 

编辑完成后 保存命令 :wq

重启数据库 lnmp mysql restart

然后就进入mysql  命令:

mysql -uroot -p 

输入mysql密码(默认输入root)

创建主数据库账号(用于从库链接的账户)

 grant replication slave on *.* to '这里填写用户名mark'@'这里填写从数据库的IP或者%' identified by '这里填写密码123456';

#授权给从数据库IP或%任意主机,用户名mark 密码123456

 

查看配置状态(这里的两个数据很重要 等会下面会用 一个file 一个position)

show master status

腾讯云服务器与虚拟机搭建主从分离数据库

 

好了 上面的主库配置就完成了

下面去到我们的从库配置 还是照旧vim /etc/my.cnf

从数据库配置

server-id=201
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=mysql-bin-201

腾讯云服务器与虚拟机搭建主从分离数据库

 

编辑完成后 保存命令 :wq

重启数据库 lnmp mysql restart

然后就进入mysql  命令:

mysql -uroot -p 

输入mysql密码(默认输入root)

创建链接主库的配置

change master to master_host='这里填写主数据库的ip地址', master_user='填写刚刚创建的用户名mark' ,master_password='填写刚刚创建的密码123456', master_log_file='这里填写刚刚查看的File值mysql-bin-200.000002' ,master_log_pos=这里填写刚刚查看的Position值1163;

输入完后 启动slave 从库链接

start slave;

启动成功后 查看从库配置

show slave status \G;

腾讯云服务器与虚拟机搭建主从分离数据库

看到了我们红色圈圈这两个值都为YES证明配置成功且链接主库成功了!!

如果看到slave_IO_Running为 connect 代表链接中 如果出现这种情况 一般来说要不就是账户密码写错了 要不然就是防火墙得问题 如果是防火墙得问题 就得去查看主库的防火墙是否屏蔽了mysql链接

我第一次测试的时候就出现这种问题 那咋办 就去查看主库的防火墙呗 修改防火墙得规则 或者停止防火墙(这样不安全)

这里就不说明防火墙设置了 可以去百度 主库防火墙查看规则 iptables --list

一般防火墙有两种 一种iptables  一种firewall 腾讯云的好像是用firewall的

 

如果想关闭主从分离的话就直接在从数据库输入该命令 

 

stop slave;

reset slave;

好了 链接成功后就可以去测试下在主库新建一条数据 从库就会新建一条数据了

腾讯云服务器与虚拟机搭建主从分离数据库

腾讯云服务器与虚拟机搭建主从分离数据库

OK 大功告成!!