学习哈主从复制。记录下来。
准备工作:
1.两个虚拟机:我自己使用的是CentOS,
服务器地址分别为
主:10.1.1.101
从:10.1.1.201
他们的mysql版本是一致的。
2.环境:apache+PHP+MYSQL
原理:
mysql要做到主从复制,其实依靠的是二进制,即:主服务器为A,从服务器为B。主从复制,意思就是B学习A,A做什么事情,B就跟着做什么事情。那么B如何同步A做的事情呢?现在A有一个日志功能,记录了A所做的增删查改的动作全部记录到日志中,B只需要拿到这份日志,照着日志上面的动作施加在自己身上,这样就实现了主从复制。
实现步骤:
1.首先修改mysql的配置文件,使其支持二进制日志功能。
打开主服务器的mysql配置文件my.conf
vi my.conf
加入下列3行代码
参数解释:
1.将二进制日志取名为mysql-bin
2.二进制日志的格式,这里直接使用mixed
3.为服务器设置一个独一无二的id便于区分
配置完成后wq保存退出,然后重启mysql(service mysqld restart)
同样的,进入从服务器,配置my.conf,
唯一不同的是最后一行,将其配置成从服务器的IP号码,server-id = 201,
然后保存,重启。
2.在主服务器上为从服务器分配一个帐号,就像一把钥匙,从服务器有了这把钥匙,才能获取到主服务器上的日志文件。
进入主服务器的mysql界面:
命令 mysql -u root -p root
在mysql操作界面,运行下面命令:
GRANT replication slave on *.* to 'slave'@'%' IDENTFIED BY 'root';
3.查看主服务器BIN日志的信息(执行完成后记录下这两个值,并且在配置完从服务器之前不要对主服务器进行任何操作,因为操作一次,这两个值就会变化)
4.设置从服务器
进入mysql界面
首先关闭slave (stop slave),然后开始配置
输入一下代码即可:
参数解释:
MASTER_HOST:设置要连接的主服务器的IP地址
MASTER_USER:设置要连接的主服务器的用户名
MASTER_PASSWORD:设置要连接的主服务器的密码
MASTER_LOG_FILE:设置要连接的主服务器的bin日志的日志名称,即第三步得到的信息
MASTER_LOG_POS:设置要连接的主服务器的bin日志的记录位置,即第三步得到的信息。(这里需要注意,248不需要加引号,不然配置失效)
先在从服务器上配置完成,启动从服务器:
5.查看是否配置成功:
命令:show slave status
上面两项均为yes,说明配置成功,否则,重复前面的步骤重新配置。
这就是主从复制的全过程。
原文:http://www.cnblogs.com/superfat/p/5267449.html