windows下安装mysql配置文件为my.ini
先准备两个数据库,一个做主库一个做从库。
1.修改主库(master)的my.ini配置文件
my.ini文件在安装路径根目录下面。
[mysqld]
port = 3306
#设置master的serverid
server-id=1
#要生成的日记文件名称
log-bin = mysql-ctmdb
#要同步的数据库
binlog-do-db=ctmdb
#不同步的数据库,如果指定了binlog-do-db这里可以不用指定binlog-ignore-db
#binlog-ignore-db=Others
修改完配置重启mysql服务。
2.查看主库(master)的status
主要记住 File 和Position;后面从库(slave)连接主库(master)需要用到!
3.修改从库(slave)的my.ini
配置文件
#server-id必须有且不能和其他master或slave重复
server-id = 2
replicate-do-db = ctmdb
#log-bin = mysql-ctmdb
修改完配置重启mysql服务。
4.从库(slave)连接主库(master)
此处均在从库(slave)中执行。
mysql> stop slave;
Query OK, 0 rows affected
mysql> change master to master_host='localhost(主库IP)',master_port=3306,master_user='root',master_password='*****',master_log_file='mysql-bin.000001',master_log_pos=107;
Query OK, 0 rows affected
mysql> start slave;
Query OK, 0 rows affected
mysql> show slave status;
master_log_file='mysql-bin.000001', master_log_pos=107;
master_log_file,master_log_pos要和主库status中的 File 和Position对应!
主要看Slave_IO_Running、Slave_SQL_Running,这两个值都必须是Yes!
5,测试主从配置是否成功!
此处均在主库(master)中执行。
注: 如果主库已存在需要同步的database而从库没有对应的database的话 则手动同步数据到从库中(这里配置并不会自动同步之前已经存在的数据!);
这里同步的是已经存在数据的database所以我自己首先手动同步了两边主从库的数据。
若为新库则自己在主库(mastr)创建新database即可,从库会自动同步创建database;
mysql> use ctmdb
-> ;
Database changed
mysql> create table test(id int(10) not null primary key,name varchar(10));
Query OK, 0 rows affected
mysql> insert into test(id,name) values(1,'Aaron');
Query OK, 1 row affected
配置主从之后 操作主库 mysql会自动同步到从库
在主库中创建一个表并插入一条数据。 然后我们刷新从库看看是否存在此表以及数据即可!
从库同步结果: