通过读写分离 、数据备份、负载均衡最终体现效率
实际开发中,至少要有两台服务器
client: 客户端C sever:服务器S
master:主服务器 slave:从服务器
从随主变
至少两台服务器的作用:主服务器上的所有数据备份到从服务器
手动备份:麻烦,不可取;
解决方法:主服务器与从服务器进行关联,从服务器自动向主服务器请求数据(从随主变)
防止丢失
不管主、从谁挂了,数据都不会丢失
负载均衡
一台从不够,多几台,更新在主里,查看是部分在从,部分在另一个从,效率快
MySQL主从同步配置
1. 主从同步的定义
主从同步使得数据可以从一个数据库服务器复制到其他服务器上
2. 主从同步的机制( Master:主服务器 Slave:从服务器)
主从核心点:
write时——>Master里会有数据——>Date changes会记录——>向二进制的log文件写入如何改的、改了什么——>从服务器需要配置——>用I/O thread多线程的方式进行I/O操作(读-写、网络收-发)——>拿到数据——>把拿到的数据与之前的比对——>进行更改——>数据一致
完成主从要点:
1. 配置主服务器log文件
2. 给主、从分别配置唯一的序列号,并用命令告诉主应改把谁当成主服务器从而去那里不断请求,这时就同步了
如何导数据?
windows为主,Ubuntu为从的配置
配置主:
打开C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
改为与图片相符
重启服务: home键——>搜索服务——>找到MySQL57——>右键——>重新启动
配置从:
-- 编辑设置mysqld的配置文件,设置log_bin和server-id
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-- 上面不好使用这个(记得权限:sudo chmod 777 /etc/mysql/mysql.conf.d/mysqld.cnf)
gedit /etc/mysql/mysql.conf.d/mysqld.cnf
改为与下图一样
-- 修改之后重启mysql服务
sudo service mysql restart
-- 登入主服务器Windows中的mysql,给从服务器同步数据添加的帐号
-- 登录主服务器
mysql –uroot –p2361559775
-- REPLICATION SLAVE:可以让从服务器在主服务器复制 ON:哪一个数据库的哪一个表 *.*:所有的数据库所有的表 to:给谁 'slave':新用户名 '%':任意一台机器登录 最后一个引号里是密码
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';
-- 刷新权限才可以
FLUSH PRIVILEGES;
-- 用来找master_log_file和master_log_pos的值
show master status;
-- 查找ip(master_host的值)
ipconfig
-- (从)进入Ubuntu的mysql,设置连接到master主服务器(账户、密码必须和刚刚创建的一一对应)master_log_file的值复制刚刚查到的file的值、 master_log_pos的值复制查到的Position的值
change master to master_host='192.168.57.1', master_user='slave', master_password='slave',master_log_file='LAPTOP-5VF2SFCR-bin.000001', master_log_pos=600;
网友评论