主从同步意义?
主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。
机制
Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。
在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接收到该日志的一个副本。从服务器可以指定执行该日志中的哪一类事件(譬如只插入数据或者只更新数据),默认会执行日志中的所有语句。
配置主从同步的基本步骤有很多种配置主从同步的方法,可以总结为如下的步
在主服务器上,必须开启二进制日志机制和配置一个独立的ID 开启方法
在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号
在开始复制进程前,在主服务器上记录二进制文件的位置信息
如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)
配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置
案例:将腾讯云服务器上的mysql备份到本地服务器中。
远程腾讯云服务mysql------------------------主
本地服务器daocker容器中的mysql -------从
第一步:
在本地服务器中的docker容器中安装 mysql_docker镜像(mysql_docker_5722.tar文件地址 提取码:f9np)
将镜像文件下载到本地,然后通过工具上传到本地服务器中(我使用的是以下工具进行上传和下载直接拖拽即可完成)
使用xshell进入本地服务器中查看文件是否上传到了home/ubuntu目录下
第一步:
还是在本地服务器中使用docker安装镜像,执行 docker load -i mysql_docker_5722.tar
检查镜像是否安装成功。
第二步:
在本地服务器中创建一个用于备份的虚拟环境
第三步:
在远程腾讯云服务器中的/home/ubuntu目录中创建一个mysql_slave目录,进入该目录在创建一个data目录
第四步:
将远程腾讯云服务器中的mysql配置信息复制到上面创建的mysql_slave目录中 执行命令:cp -r /etc/mysql/mysql.conf.d ./
第五步:
进入mysql.conf.d目录中对mysqld.cnf文件进行编辑(注意,这里我复制过来的所有配置相当于从服务器中的配置,因为后面我会将整个mysql_slave文件夹传到我本地服务器中)
修改内容如下: