mysql主从同步

同步原理是从服务器读取主服务器日志并在从服务器执行。
首先配置主服务器:
安装好mysql后,必须开启日志。
一.设置主服务器
1.检查/etc/my.cnf里面是否开启(以下是否存在)
log-bin=mysql-bin
2.编辑主服务器的my.cnf,并在[mysqld]下添加
server-id = 1 //主服务器设置为1
binlog-do-db = database1 //需要同步的数据库,如果不写这个,默认同步所有数据库除了下面排除的,写了就只同步他了
binlog-ignore-db = mysql //不需要同步的数据库
3.重启mysql
service mysqld restart
4.添加同步账户
grant replication slave on *.* to ‘username’@’从服务器的IP’ identified by ‘密码’;

5. 用show master status命令看日志情况,并记录下出来的信息,配置从服务器有用到
mysql> show master status;

主服务器设置完成
接下来,直接把mysql需要同步的数据库打包到从服务器mysql相同的数据库里面覆盖。

二,从服务器配置
1.编辑 /etc/my.cnf
将server-id = 1设置为大于1的,比如2
master-port = 3306主服务器mysql端口
master-connect-retry = 10 重试同步时间

2.设置配置,进入mysql运行
mysql>stop slave;
mysql>change master to

>master_host=’192.168.2.67′,

>master_user=’rsync’, master端创建的用于主从同步的账户和密码

>master_password=’123456′,

>master_port=’3306′, master端设置的client端使用的端口号。

>master_log_file=’mysql-bin.000047′, master端记录的file值

>master_log_pos=391592414; master端记录的position值

mysql>start slave;

mysql>show slave status \G

查看结果里面
Slave_IO_Running: Yes

Slave_SQL_Running: Yes
都是yes就没问题了。
如果no,看下日志,记得2个服务器加防火墙白名单