mysql主从复制搭建

 前段时间自己搭建了mysql 的主从复制,今天总结下。

------------------------------------------------------------------------------------

一 原理

slave会从master读取binlog来进行数据同步。master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events。从机就是从这些过程日志来实现数据同步的。


二 配置测试

   1.首先保证主从机mysql的版本一致。

    我的机器说明:

    192.168.1.101     centos6.5    mysql5.6 

    192.168.1.102     centos6.5    mysql5.6


2.配置主机和从机的my.cnf(windows的是my.ini)文件。

    1)主机配置:(我这是最简单的配置)

log_bin = mysql-bin

server-id = 1

下图为一些其他配置,列一下


2)从机配置

log-bin=mysql-bin   
server-id=2

配置完成后,主从机都重启下。关闭防火墙。

3.主机建立账户授权。

mysql>grant replication slave on *.* to [email protected]192.168.1.101 identified by '123456' 
flush privileges;
查看主机状态:

mysql> show master status;


4.从机上做准备,连接主库,准备复制。

mysql>change master to master_host='192.168.1.103',master_user='slave',master_password='123456', master_log_file='mysql-bin.000003',master_log_pos=120;
注:该语句的后两个参数就是上面的master status中的file 和position.

mysql>start slave;

mysql>show slave status\G;
 
 
截图中比较重要的两个参数:
 
 
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
5.查看效果
ok,可以了。
-----------------------------------------------------------------------------------------
参考资料:1. http://www.cnblogs.com/kezf/p/mysql-slave.html   2.  http://blog.csdn.net/xlgen157387/article/details/51331244/
------------------------------------------------------------------------------------------
过程中的主要问题:
从机配了my.cnf后,重启 mysql -u root -p 登上不去了;不用密码登上去后,show databases 没有mysql数据库,网上说是权限问题,找答案未果。 我在my.cnf里加了skip-grant-tables ,跳过了权限,临时解决的。