[mysql]MySQL主从复制(linux主+windows从)

平台:windows/linux(ubuntu14.04)
版本:mysql5.5.XX

注:在mysql主从复制中,分为:主mysql(master),从mysql(slaver);本次例子,将是一个Master和一个slaver(实际工作中,常常会有多个master,多个slaver);

*本次实例,在ubuntu14.04系统上mysql作为master;windows下的mysql作为slaver;

1)master端配置
例子中使用两台虚拟机,IP分别为192.168.233.135(MASTER),192.168.233.131(SLAVE)。
(注:先关闭mysql服务,因为我们需要修改mysql配置文件;
Service mysql top

修改master端my.cnfi中[mysqld]选项(ubuntu路径为/etc/mysql/my.cnf),添加如下内容:
Server_id = 1 //作为master的id
Log_bin = /var/log/mysql/mysql-bin.log //Log二进制日志
Bind-address = 192.168.233.135 //绑定的地址

(binlog-do-db:指定同步的数据库
Binlog-ignore-db:指定忽略的数据库,同上者只需存在一个类型即可。
)

[mysql]MySQL主从复制(linux主+windows从)

保存后退出;

重启mysql:
Sudo service mysql restart;

[mysql]MySQL主从复制(linux主+windows从)

进入mysql;
Sudo mysql -u root -p
[mysql]MySQL主从复制(linux主+windows从)

查看master状态:
Show master status\G
[mysql]MySQL主从复制(linux主+windows从)
将显示的信息中的File和Position值给记住,稍后的slaver端我们需要;(这里为)

远程登录账户添加和授权(这一步的目的是可以在192.168.233.131上登录192.168.233.135的mysql数据库):

语句:
Grant all on . to [email protected] identified by “test”;
这里授权的是all,mysql手册说明仅用peplication slave权限就足够。

2)slave端的配置
由于slave端是windows这里的配置文件为my.ini
同样进行编辑修改:
在【mysqld】选项
Server-id = 2
Relay-log = win-relay-bin

[mysql]MySQL主从复制(linux主+windows从)
(server-id:服务器slave的标志号
Relay-log:缓冲日志,存储从master转过来的bin-log

进入mysql:
Mysql -u root -p

Slave stop;
[mysql]MySQL主从复制(linux主+windows从)
Change master to
master_host = “192.168.233.132”,
Master_user=”test”,
Master_password=”test”,
Master_log_file=”(刚才记录的File值)”,
Master_log_pos=(刚才记录的position值);
[mysql]MySQL主从复制(linux主+windows从)
然后slave start;

在master端:
[mysql]MySQL主从复制(linux主+windows从)
[mysql]MySQL主从复制(linux主+windows从)
同时,在slave端:
[mysql]MySQL主从复制(linux主+windows从)
Ok,在这里slave端已经同步数据库过来了;
[mysql]MySQL主从复制(linux主+windows从)
不过在slave端,数据库版本不一致,出现了错误;
(所以,大家要记住,mysql主从复制过程,需要数据库版本都一致)