本文主要给大家介绍mysql实现主从复制的步骤,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下mysql实现主从复制的步骤吧。
mysql主从原理:
1)至少需要2台数据库云服务器,一主一从,master开启bin-log功能。(bin-log功能用户记录主控增 加、删除、修改、更新SQL的语句。)
2)异步复制的过程,有延迟,毫秒级别(延迟和你的网络和性能、数据库的量级有关),开启3个线程。分别是master开启io线程,slave开启io线程、sql线程。
3)从库启动 salve start,通过io线程、用户名和密码去连接master,master接收请求后,master io线程负责将bin-log内容position位置点数据发给salve端。
4)slave io线程收到数据之后,会将内容追加到本地relay-log中继日志,同时会产生master.info文件(这次从哪台机器同步,用户名、密码、bin-log文件名、position位置).
5)slave SQL线程实时监测relay-log,如果这个日志内容有更新,解析文件中的SQL语句,在本地去执行。
实战:
1)master配置文件中开启bin-log,设置server-id
2)授权同步用户和密码
3)slave执行change master绑定主库
192.168.1.155(master)
192.168.1.156(salve)
注:关掉云服务器的防火墙和setenforce 0
主库配置:
1.在mysql配置文件中加入
log-bin=mysql-bin(开启bin-log)
server-id=1(区分主从)
2.重启数据库
/etc/init.d/mysql restart
3.进入数据库,创建一个新的用户,并授权允许同步
create user 'tongbu'@'192.168.1.156' identified by '123456';(创建用户)
grant replication slave on *.* to 'tongbu'@'192.168.1.156' identified by '123456';(授权给从库)
4.查看主库状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 990 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)
从库配置:
5.修改从库配置文件
server-id = 2
6.重启数据库
/etc/init.d/mysql restart
7.在从云服务器上指定master IP和同步的pos点
进入数据库:
change master to master_host='192.168.1.155' ,master_user='tongbu' ,master_password='123456' ,master_log_file='mysql-bin.000001' ,master_log_pos=990;
注:如果报错
ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first
说明slave正在运行,stop slave;(关闭slave)
7.启动slave
start slave;
8.测试,在主库创建一个数据库,查看从库是否同步过来。
(本实验是成功的)
看完以上关于mysql实现主从复制的步骤,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。