MySQL 数据同步 一主多从
Master  主服务器的ip1 92.168.1. 99

Slave1  从服务器的ip1 92.168.1. 113

Slave2  从服务器的ip1 92.168.1. 111


一、master主服务器上设置:

1. 权限设置

允许用户 user ip

192.168. 220.131

192.168. 220.132.

的主机连接到 mysql 服务器 master ,并使用 pass 作为密码

 

下面用户名是user,密码是pass

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.220.131' IDENTIFIED BY ' repl '

 

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.220.132' IDENTIFIED BY ' repl

2、

文件配置
修改my.ini配置文件

[mysqld]

port=3306  服务端口

加入下面两行,设置log文件、服务id

log-bin = mysql-bin.log

server-id = 1

重启mysql服务。


3. 得到主服务器上当前的二进制日志名和偏移量

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000005 |      106 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set


二、slave1从服务器上设置:

1. 文件配置

修改my.ini配置文件

 [mysqld]

port=3306  服务端口

加入下面两行,设置服务idlog文件

server-id = 2

log-bin = mysql-bin.log

重启mysql服务。

 

2. 在从服务器上,关闭slave线程

 Mysql>stop slave;


3. 在从服务器做相应设置

指定复制使用的用户,主数据库服务器的ip、端口、以及开始执行复制的日志文件和位置等。

Mysql >Change master to

master_host='192.168.220.128',

master_port=3306,

master_user='user',

master_password='pass',

master_log_file='mysql-bin.000005',

master_log_pos=106;


4. 在从服务器上,启动slave线程

Mysql >start slave;


5. 显示slave的状态信息

Mysql >show slave status;

 

6. 显示从服务器上的进程

Mysql >show processlist;

 

三、slave2从服务器上设置:

1. 文件配置

修改my.ini配置文件

[mysqld]

port=3306   服务端口

加入下面两行,设置服务id log文件

server-id = 3

log-bin = mysql-bin.log

重启mysql服务。


2. 在从服务器上,关闭slave线程

 Mysql>stop slave;


3. 在从服务器做相应设置

指定复制使用的用户,主数据库服务器的ip、端口、以及开始执行复制的日志文件和位置等。

Mysql >Change master to

master_host='192.168.220.128',

master_port=3306,

master_user='repl',

master_password='repl',

master_log_file='mysql-bin.000005',

master_log_pos=106;

 

4. 在从服务器上,启动slave线程

Mysql >start slave;


5. 显示slave的状态信息

Mysql >show slave status;


6. 显示从服务器上的进程

Mysql >show processlist;


三、测试查看效果

1 、保持master主服务器和slave1slave2开启;

master服务器上操作数据库和表,能看到slave服务器上的数据库和表跟随着做相应变动。