最近看到51上很多mysql主从相关的文章,就参照了自己也搭建了下,分享下成果。
作者写本篇文章的时候是以一个mysql小白甚至连mysql主从都没有听过的菜鸟的角度去写的,所以本篇文章适用于mysql小白,也欢迎各位大神吐槽,留言~~
ps:因为是参照他人的Blog搭的,所以此篇文章版权方面属于转载~!
一、Mysql主从的概念
通俗点来说Mysql主从的话,就可以理解为“两台机器,都安装好mysql,一个为主,一个为从,日常的读写操作都是由主来完成,等到主出问题了,从可以接管主的位置”,从mysql起到了一个备份的作用。
<a target="_blank" href="http://10240214.blog.51cto.com/6634068/1216339">o(∩_∩)o 点我查看图片原文</a>
关于主从上安装mysql的版本方面有一点需要注意的是:Mysql主从允许从库版本高于主库,但不允许主库版本高于从库。
二、Mysql主从的配置
主库:
1、默认安装好mysql后配置文件的路径为/etc/my.cnf,你可以不去管mysql配置文件的其他参数,但是做主从一定要加的参数如下:-
1
2
3
4
5
6
7
<code>server-id = </code><code>1</code> <code>###</code><code>1</code><code>代表当前mysql为主库</code>
<code>log-bin=mysql-bin ###bin-log文件命名格式</code>
<code>binlog-</code><code>do</code><code>-db=mysql ###需要备份同步的数据库名</code>
<code>binlog-ignore-db=mysql ###不备份同步的数据库名</code>
<code>log-slave-updates ###自动更新mysql操作记录到二进制文件</code>
<code>slave-skip-errors ###遇到错误跳过,继续复制操作</code>
<code>***如果需要备份同步多个数据库的话,就多写几个binlog-</code><code>do</code><code>-db = 参数就可以了~</code>
2、在主库上新建用于复制同步mysql数据的用户
<code>grant replication slave on *.* to slave@</code><code>192.168</code><code>.</code><code>50.35</code> <code>identified by ‘</code><code>111111</code><code>′;</code>
<code>###新建一个用户名为slave,密码</code><code>111111</code><code>的用户,指定从库的IP地址为</code><code>192.168</code><code>.</code><code>50.35</code>
3、锁主库表,为一会的从库同步做准备
<code>FLUSH TABLES WITH READ LOCK;</code>
4、查看主库相关信息
记录File和Position,从库设置将会用到
注:mysql-bin默认是00001的,因为我这个主从搭建有几天了,所以现在是2,记住Position字段.
从库:
1、同样安装好mysql后编辑配置文件,/etc/my.cnf,添加如下字段
<code>server-id = </code><code>2</code> <code>###</code><code>2</code><code>代表当前mysql为从库</code>
注:从库中添加的配置参数除了server-id 和主库不一样以外,其他均相同。
2、在从库上设置同步
<code>mysql>stop slave;</code>
<code>CHANGE MASTER TO MASTER_HOST=</code><code>'192.168.50.30'</code><code>,MASTER_USER=</code><code>'slave'</code><code>,MASTER_PASSWORD=</code><code>'111111'</code><code>,MASTER_LOG_FILE=</code><code>'mysql-bin.000002'</code><code>,MASTER_LOG_POS=</code><code>106</code><code>;</code>
<code>start slave;</code>
查看slave状态:
<code>mysql>show slave status\G;</code>
其中 Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",表明 Slave 的 I/O 和 SQL 线程都在正常运行。
最后解锁主库上的表:
<code>mysql>unlock tables;</code>
到此主从的一个搭建就完成了,搭建的过程很简单,重要的是如何解决在使用过程中出现的一系列问题,这方面我没什么经验,也就没什么话语权,只有等以后遇到了在和大家分享吧
本文转自 linuxsong 51CTO博客,原文链接:http://blog.51cto.com/song49/1218685,如需转载请自行联系原作者