同步原理是从服务器读取主服务器日志并在从服务器执行。
首先配置主服务器:
安装好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个服务器加防火墙白名单