Mysql 主从搭建【菜鸟篇】-阿里云开发者社区

开发者社区> 数据库> 正文

Mysql 主从搭建【菜鸟篇】

简介:

最近看到51上很多mysql主从相关的文章,就参照了自己也搭建了下,分享下成果。

作者写本篇文章的时候是以一个mysql小白甚至连mysql主从都没有听过的菜鸟的角度去写的,所以本篇文章适用于mysql小白,也欢迎各位大神吐槽,留言~~

ps:因为是参照他人的Blog搭的,所以此篇文章版权方面属于转载~!



一、Mysql主从的概念

通俗点来说Mysql主从的话,就可以理解为“两台机器,都安装好mysql,一个为主,一个为从,日常的读写操作都是由主来完成,等到主出问题了,从可以接管主的位置”,从mysql起到了一个备份的作用。

Mysql主从概念比较专业的解释:111356215.jpg

o(∩_∩)o 点我查看图片原文

关于主从上安装mysql的版本方面有一点需要注意的是:Mysql主从允许从库版本高于主库,但不允许主库版本高于从库。


二、Mysql主从的配置

   主库:

   1、默认安装好mysql后配置文件的路径为/etc/my.cnf,你可以不去管mysql配置文件的其他参数,但是做主从一定要加的参数如下:-

1
2
3
4
5
6
7
server-id = 1            ###1代表当前mysql为主库
log-bin=mysql-bin        ###bin-log文件命名格式
binlog-do-db=mysql       ###需要备份同步的数据库名
binlog-ignore-db=mysql   ###不备份同步的数据库名
log-slave-updates        ###自动更新mysql操作记录到二进制文件
slave-skip-errors        ###遇到错误跳过,继续复制操作
***如果需要备份同步多个数据库的话,就多写几个binlog-do-db =  参数就可以了~

   

   2、在主库上新建用于复制同步mysql数据的用户

1
2
grant replication slave on *.* to slave@192.168.50.35 identified by ‘111111′;
###新建一个用户名为slave,密码111111的用户,指定从库的IP地址为192.168.50.35

   

    3、锁主库表,为一会的从库同步做准备    

1
FLUSH TABLES WITH READ LOCK;


   4、查看主库相关信息

      记录File和Position,从库设置将会用到

      104801893.jpg

注:mysql-bin默认是00001的,因为我这个主从搭建有几天了,所以现在是2,记住Position字段.

   

   从库:

   1、同样安装好mysql后编辑配置文件,/etc/my.cnf,添加如下字段    

1
2
3
4
5
6
7
server-id = 2            ###2代表当前mysql为从库
log-bin=mysql-bin        ###bin-log文件命名格式
binlog-do-db=mysql       ###需要备份同步的数据库名
binlog-ignore-db=mysql   ###不备份同步的数据库名
log-slave-updates        ###自动更新mysql操作记录到二进制文件
slave-skip-errors        ###遇到错误跳过,继续复制操作
***如果需要备份同步多个数据库的话,就多写几个binlog-do-db =  参数就可以了~

注:从库中添加的配置参数除了server-id 和主库不一样以外,其他均相同。


   2、在从库上设置同步

     

1
mysql>stop slave;

   

1
CHANGE MASTER TO MASTER_HOST='192.168.50.30',MASTER_USER='slave',MASTER_PASSWORD='111111',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=106;

   

1
start slave;

   如图:111636841.jpg

         111722716.jpg

       查看slave状态:

1
mysql>show slave status\G;

   111918469.jpg

   其中 Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",表明 Slave 的 I/O 和 SQL 线程都在正常运行。


   最后解锁主库上的表:

1
mysql>unlock tables;


   到此主从的一个搭建就完成了,搭建的过程很简单,重要的是如何解决在使用过程中出现的一系列问题,这方面我没什么经验,也就没什么话语权,只有等以后遇到了在和大家分享吧










本文转自 linuxsong 51CTO博客,原文链接:http://blog.51cto.com/song49/1218685,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章