记录mysql 主从安装的方法
主从复制解释
将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致。
主从复制的作用
- 高可用性:主数据库异常可切换到从数据库
- 负载均衡:实现读写分离
- 备份:进行日常备份
Mysql主从复制过程
Binary log:主数据库的二进制日志;Relay log:从服务器的中继日志。
复制过程:
(1)主数据库在每次事务完成前,将该操作记录到binlog日志文件中;
(2)从数据库中有一个I/O线程,负责连接主数据库服务,并读取binlog日志变化,如果发现有新的变动,则将变动写入到relay-log,否则进入休眠状态;
(3)从数据库中的SQL Thread读取中继日志,并串行执行SQL事件,使得从数据库与主数据库始终保持一致。
注意事项:
(1)涉及时间函数时,会出现数据不一致。原因是,复制过程的两次IO操作和网络、磁盘效率等问题势必导致时间戳不一致;
(2)涉及系统函数时,会出现不一致。如:@@hostname,获取主机名称,主从数据库服务器名称不一致导致数据不一致;
一主一从配置
| 服务器IP | 角色 |
|—|—|
| 192.168.133.129 | Master1 |
| 192.168.133.130 | Slave1 |
主数据库安装
1 | # 进入目录 |
从数据库安装和主数据库安装一致,但配置文件内容不同。
1 | # 配置my.cnf |
关闭主从数据库服务器防火墙或开放3306端口
1 | # 查看防火墙状态 |
主从数据库测试是否已经可以远程访问
1 | # 主数据库服务器测试从数据库 |
主数据库创建用户slave并授权
1 | # 登录 |
从数据库验证slave用户是否可用
1 | mysql -uslave -p -h192.168.133.129 -P3306 |
主数据库查询服务ID及Master状态
1 | # 登录 |
从数据库中设置主数据库
1 | # 登录 |
测试
通过工具连接主从数据库或者在服务器连接。
注意:主数据库的配置文件中配置了需要同步的数据库,因此只会同步配置的数据库,不配置则同步全部。
1 | # 在主数据库创建数据库test |
双主双从配置
双主双从即两台主机分别存在两台从机,每台从机只复制对应的主机,两台主机互为主备。
服务器划分
服务器IP | 角色 |
---|---|
192.168.133.129 | Master1 |
192.168.133.130 | Slave1 |
192.168.133.131 | Master2 |
192.168.133.132 | Slave2 |
安装数据库请参考上述安装主数据库
四个配置文件替换如下:
(1)Mater1
1 | [mysqld] |
Mater2
1 | [mysqld] |
(3)Slave1
1 | [mysqld] |
(4)Slave2
1 | [mysqld] |
双主双从数据库均重启
1 | service restart mysql |
四台服务器均关闭防火墙
systemctl stop firewalld
两台主数据库分别创建用户slave并授权
1 | # 登录 |
主从数据库验证slave用户是否可用
1 | # 主数据库1服务器测试 |
两台主数据库查询服务ID及Master状态
1 | # 登录 |
从数据库1中设置主数据库1
1 | # 登录 |
从数据库2中设置主数据库2
1 | # 登录 |
主数据库1中设置主数据库2
1 | # 登录 |
主数据库2中设置主数据库1
1 | # 登录 |
测试
通过工具连接双主双从数据库或者在服务器连接。
注意:主数据库的配置文件中配置了需要同步的数据库,因此只会同步配置的数据库,不配置则同步全部。
1 | # 在主数据库1创建数据库test |
本文作者: NUK
最后更新: 2024年11月12日 17:20:39
本文链接: http://www.uilucky.com/post/cb94082.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!