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.****.net/xlgen157387/article/details/51331244/
------------------------------------------------------------------------------------------
过程中的主要问题:
从机配了my.cnf后,重启 mysql -u root -p 登上不去了;不用密码登上去后,show databases 没有mysql数据库,网上说是权限问题,找答案未果。 我在my.cnf里加了skip-grant-tables ,跳过了权限,临时解决的。