主服务器:Ubuntu14.04
从服务器:win7
首先将主服务器上的表都复制到从服务器上,保证主服务器的数据库在从服务器上是一直的。
主服务器(ubuntu)配置
1修改主服务器master:
#vi /etc/my.cnf 也可能在/etc/mysql/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=1 //[必须]服务器唯一ID,默认是1,
2重启mysqlservice mysql restart(/opt/lamp/lamp restart)
3在主服务器上建立帐户并授权slave:
grant replication slave on *.* to 'root'@'%' identified by'casia';
//一般不用root帐号,%为通配符,表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.1.100,加强安全。
4登录主服务器的mysql,查询master的状态
记录下File域的值(mysql-bin.000001)Position域的值(2397)后面从服务器配置需要用到;
从服务器(win7)配置
1修改从服务器slave:
#vi/etc/my.cnf win7下为 …\MySQL\MySQL Server 5.5\my.ini
[mysqld]
#log-bin=mysql-bin //启用二进制日志
server-id=2 //[必须]服务器唯一ID,默认是1,
(参照网上仅仅设置这么两个地方,我在my.ini中将master-host,master-username,password都设置了)
2. win7下 netstop/start mysql
3配置从服务器Slave:
mysql>change master to master_host='192.168.1.106',master_user='pushiqiang',master_password='q123',
master_log_file='mysql-bin.000001',master_log_pos=107; //注意不要断开,308数字前后无单引号。
master_host:主服务器的ip;
master_port:端口号;(如果默认3306的话不需要指定);
mstart_user:登陆主服务器mysql用户;
master_password:登陆主服务器mysql密码;
master_log_pos:从主服务器复制文件的第几个位置进行复制;即前面记录的master的状态中的File域的值
master_log_file:主服务器中的数据库复制文件;即前面记录的master的状态中的Position域的值
4启动从服务器复制功能
mysql>start slave;
5检查从服务器复制功能状态:
mysql> showslave status\G;
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
若
Slave_IO_Running: Connecting
则查看主服务器的
3306
端口是否允许远程访问,用
telnent master 3306
测试
现在你对主服务器的任何更新操作都将同步到从服务器,你可以试试建表,插入数据,删除数据,看是否同步成功(从服务器的更新不会同步到主服务器)。