Mysql的主从复制,主要通过binlog日志来实现 主要步骤: 1、master授权从库连接(master上操作) grant replication slave on . to 'backup'(用户
主要步骤:
1、master授权从库连接(master上操作)
grant replication slave on . to 'backup'(用户名)@'192.168.1.131(从库ip)' identified by 'backup'(密码);
2、master上操作:show master status
;记录master上的日志文件名、position两个值需要记住后面要用
3、slave上操作:让slave连接master,并开始重做master二进制日志中的事件。master_log_file的值为上面的日志文件名;master_log_pos为position的值
change master to master_host='192.168.1.131(主库ip)',master_user='backup',master_passWord='backup',master_log_file='ZHaopAN-PC-bin.000004(日志文件名)',master_log_pos=120(position的值);
4 slave上操作查看从库:show slave status\G
;查看第三步的配置信息,并且要查看io进程是否启动,如果没有启动,就执行
start slave;
5 slave上配置只读,在配置文件/etc/my.cnf中的mysqld中配置read_only=1
注意:read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户(如超级管理员root用户)的数据修改操作。
如果想保证super用户也不能写操作,就可以就需要执行给所有的表加读锁的命令 “flush tables with read lock;”
。
这样使用具有super权限的用户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。
我们的一般做法是,给从库分配一个普通用户。
将slave数据库read-only=1设置只读后,在master执行GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY'123456'WITH GRANT OPTION;
(这里要区别上面给从库分配复制权限的写法,这里分配的是usage权限, 后面多了with grant option)
创建一个普通用户,
然后用普通用户登录从库,执行操作会报错。切换到root用户后还是可以进行增删改查的。
--结束END--
本文标题: mysql的主从复制,从库设为只读不能写
本文链接: https://lsjlt.com/news/39674.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0