2)测试只读属性
我们在从服务器上设置了只读,所以我们来试试看能不能插入数据:
这就很尴尬了,为什么我们设置只读还是可以插入数据呢?这要如何解决呢?
因为我们登录的时候使用的是root超级用户,这个大变态是不受只读设置影响的,所以,我们还是可以往里面去插入数据,当然,如果我们换成其他的普通用户就不会出现这样的问题了。
解决方式也很简单,我们只需要把表锁起来就可以了: MariaDB [keer]> flush tables with read lock;
进行锁表操作以后,我们再来插入一条数据:
这样的话,即使我们是超级用户登录进来的,也不能再插入数据了。这样会安全很多。但是,有利就有弊,这样的话,我们的主从就不能实时同步了,因为我们的主从同步是通过把主上的 sql 语句放在从上再执行一遍来实现的,可是我们锁表的话,sql 语句就不能执行了。想要同步方法也很简单,直接把表解锁就可以了。
我们在主上插入一条数据:
此时,我们的从上就要解表以后才能实现同步:
1.4 扩展——实现一主多从 1.4.1 需求分析
当我们的服务器运行一段时间后,流量变得越来越多,这时,一主一从能够实现的高可用性和负载均衡不能满足我们的需求,我们就要选择再添加一台从服务器。
可是现在我们的 master 已经运行很久了,我们也需要对新安装的 slave 进行数据同步,甚至它没有 master 的数据。
此时,有几种方法可以使 slave 从另一个服务开始,例如,从 master 拷贝数据,从另一个 slave 克隆,从最近的备份开始一个 slave 。为了加快 slave 与 master 同步,可用以下方式先进行数据同步:
(1)master的某个时刻的数据快照;
(2)数据库的备份数据;
(3)master的二进制日志文件。
架构图:
接下来,我们就来实现一下这个过程:
1.4.2 具体实现过程1)对 master 进行完全备份
[root@master ~]# mkdir /backup [root@master ~]# mysqldump --all-database > /backup/mysql-backup-`date +%F-%T`-all.sql照例查看一下主的二进制日志状态及位置号。
2)把完全备份的数据发到新增的从上
[root@master ~]# scp /backup/mysql-backup-2017-11-21-10\:28\:29-all.sql @192.168.37.133:~ root@192.168.37.133's password: mysql-backup-2017-11-21-10:28:29-all.sql 100% 504KB 503.9KB/s 00:003)把这个完全备份导入从的数据库:
4)查看从是否恢复成功:
我们来查看一下从的二进制日志状态及位置号:
我们的数据已经恢复成功
5)设置主从
接下来就是按照上述步���,对该从服务器进行设置就好: