匿名用户
1级
2017-08-21 回答
环境要求:
Windows 操作系统
需要MySQL 3.23.15以后的版本。
假设数据库A为主机,数据库B为从机(A向B提供同步服务,即B中的数据来自A)
A机器:IP=10.10.151.166
B机器:IP=10.10.151.156
下面看单向同步的配置步骤:
1 在机器A中建立一个新的数据库,sql语句:
[sql] view plain copy
CREATE DATABASE backup_db;
USE test;
CREATE TABLE backup_table (
id int(11) NOT NULL auto_increment,
name varchar(20) character set utf8 NOT NULL,
sex varchar(2) character set utf8 NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2 打开A机器的mysql安装目录下的my.ini文件,在文件最后添加:
[plain] view plain copy
server-id=1
log-bin=c:\mysqlback #启动同步事件的日志记录文件
binlog-do-db=test #提供数据同步服务的数据库
3 在机器B中建立一个和机器A结构相同的数据库,sql语句:
[plain] view plain copy
CREATE DATABASE backup_db;
USE test;
CREATE TABLE backup_table (
id int(11) NOT NULL auto_increment,
name varchar(20) character set utf8 NOT NULL,
sex varchar(2) character set utf8 NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
注:机器A和B的数据库结构必须一致,否则无法构成同步
4 打开B机器的mysql安装目录下的my.ini文件,在文件最后添加:
[plain] view plain copy
server-id=2
master-host=10.10.151.166 #主机A的地址
master-user=ym #主机A提供给B的用户,该用户中需要包括数据库test的权限
master-password=ym #访问密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒,当主从服务器连接意外断开时数据库每隔60秒进行一个重新连接
replicate-do-db=test #同步的数据库
p>5 完成以上配置之后,在机器A的mysql控制台中输入:
[plain] view plain copy
GRANT REPLICATION SLAVE,RELOAD,SUPER ON . TO ym@10.10.151.156 IDENTIFIED BY ‘ym’ ;
#这句是为让从服务器有足够的权限从主服务器是哪个接收二进制日志文件
6 重启机器A和B的mysql数据库,
[plain] view plain copy
在机器B的mysql控制台:
Mysql>slave start;
如果想查看同步配置的情况,可以按如下输入:
机器A的mysql控制台:
Mysql>show master status;
机器B的mysql控制台:
Mysql>show slave status;
7 在机器A中test数据库中的backup_table表中插入一些数据,查看机器B中test数据库中的backup_table表应该同步实现了数据的改动。