什么是主从复制?
如果数据库服务器一旦宕机,我们的项目将无法运行,如果数据库服务器硬盘损坏还将面临数据丢失的问题!!!
将MySQL数据库主机的数据复制到MySQL从机上(备份)
原理:将MySQL主机的SQL语句以日志的方式记录下来,通过网络将日志文件复制到从机上,执行日志中的SQL语句同步主机的操作和数据
搭建步骤
- 创建三台Linux服务器
- 分别安装MySQL数据库
- 配置主节点(Mysql主机操作)
- 配置从节点(Mysql从机操作)
1.搭建三台Linux服务器
一台作为mysql数据库的主节点(master)
另外两台作为mysql数据库的从节点(slave)
2.分别安装mysql数据库
说明:可以先安装一台,然后在克隆两台
2.1 上传mysql的yum源
2.2 使用yum install 命令安装
2.3 启动mysql数据库,修改密码,设置允许远程访问
2.4 关闭防火墙
或者上传rpm安装包离线安装
可参考之前文章Linux上安装mysql教程:
https://blog.csdn.net/MacWx/article/details/98171109
3.配置主从
3.1 在主节点(也就是Mysql主机)
vi /etc/my.cnf
增加
server-id=132 log_bin #需要同步的数据库 binlog-do-db=baizhi #忽略(不需要)同步的数据库 binlog-ignore-db=mysql
重启主节点的mysql数据库
登录,查看主机状态
3.2 从节点
说明:如果是克隆的需要先删除从机上的/var/lib/mysql/auto.cnf文件
rm -f /var/lib/mysql/auto.cnf
vi /etc/my.cnf
增加
server-id=133
重启mysql数据库 systemctl restart mysqld
登录mysql数据库 mysql -uroot -p
关闭从机状态 stop slave
设置和主机建立连接
语法
change master to master_host='主机ip地址',master_user=主机用户名,master_password=主机密码,master_log_file='主机日志文件名',master_log_pos=日志文件的位置
示例
change master to master_host=’192.168.152.133’,master_user=’root’,master_password=’123456’,master_log_file=’mysqld-bin.000001’,master_log_pos=241
查看从机状态 show slave status \G;
4.测试
在主节点创建一个叫做baizhi的数据库,然后在该数据库中创建一张表,添加一条测试数据
在从节点查看
看到我们在Mysql主机添加一条记录,从机也有了相应的记录,这就实现了mysql的主从复制!