mysql主从复制(从库只读)

主从复制的配置

首先将mysql5.6.x官网地址百度下载单击下载下来,安装注意(mysql中数据存放目录),后启动正常,在计算机服务中关闭mysql程序,该副本作为master库。


然后将mysql安装文件夹复制一份作为slave库。修改mysql中数据存放目录中的my.ini

1、  master和slave库中

      [mysqld]节点下加上(5.6版本以上需要)explicit_defaults_for_timestamp=true。

否则启动失败如下图:

2、修改port与master不同即可,注意有两个port需要修改

3、修改server-id  与master不同即可

4、修改datadir的值,为复制的slave的目录地址。

然后

1、启动主库:

mysqld--defaults-file=" mysql中master数据存放目录\my.ini"

启动备库:

mysqld--defaults-file=" mysql中slave数据存放目录\my.ini"

2、  登录mysql客户端:

创建备库专用的连接账户和密码

grant replication slave on *.* to 'backup'@'slave的ip' identified by 'backup';

3、  查看主库状态:show master status;有一个file、position两个值需要记住后面要用。

4、 接下来就是让slave连接master,并开始重做master二进制日志中的事件。master_log_file的值为上面的file值;master_log_pos为position的值。

change master to master_host='192.168.10.56',master_user='backup',master_password='backup',master_log_file='ZHAOPAN-PC-bin.000004',master_log_pos=764;

5、  启动slave:  start slave;

6、  查看slave状态:show slave status\G;

其中若未先执行 start slave,则Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running是No。表明slave还没有开始复制过程。

然后就可以测试了。

从库只读的配置

对于需要保证master-slave主从同步的salve库,如果要设置为只读状态,需要执行的命令为:

set global read_only=1;

read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户(如超级管理员root用户)的数据修改操作。

在MySQL中设置read_only=1后,普通的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数据库处于只读模式不能发生数据变化的错误,

但具有super权限的用户,例如在本地或远程通过root用户登录到数据库,还是可以进行数据变化的DML操作;

为了确保所有用户,包括具有super权限的用户也不能进行读写操作,就需要执行给所有的表加读锁的命令 “flush tables with read lock;”。

这样使用具有super权限的用户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。

将slave数据库read-only=1设置只读后,在master执行GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY'123456' WITH GRANT OPTION;创建一个普通用

户,然后用普通用户登录从库,执行操作会报错。切换到root用户后还是可以进行增删改查的。

只读设置参考资料

mysql5.6.x版本文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值