Windows server 2012 搭建mysql双主
环境介绍
Window server 2012 r2
Mysql 5.5.25
主机IP
Server1 172.16.79.112
Server2 172.16.79.110
环境和版本无所谓,主要是Windows和Linux操作环境有些区别,特此记录下
安装系统和mysql略,如果需要可以搜索其他文档。
Windows数据库启动、停止
进入mysql的bin目录,net stop mysql net start mysql
一、 修改mysql配置文件
首先配置mysql的my.ini(在Linux系统中是my.cnf)文档,
Server1的my.ini配置,文件路径在mysql安装路径下。可以用记事本修改。
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
log-bin=mysql-bin
slow_query_log = 1
slow_query_log_file = "C:/ProgramData/MySQL/MySQL Server 5.5/Data/slow.log"
log-error = "C:/ProgramData/MySQL/MySQL Server 5.5/Data/error.log"
long_query_time = 0.05
server-id=112 两个主机my.ini唯一的区别就是server-id,此处用ip地址最后一位
log-bin=mysql-bin
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=utf8
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=35M
thread_cache_size=8
# INNODB Specific options
innodb_additional_mem_pool_size=3M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=107M
innodb_log_file_size=54M
innodb_thread_concurrency=66

server2my.ini配置。
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
log-bin=mysql-bin
slow_query_log = 1
slow_query_log_file = "C:/ProgramData/MySQL/MySQL Server 5.5/Data/slow.log"
log-error = "C:/ProgramData/MySQL/MySQL Server 5.5/Data/error.log"
long_query_time = 0.05
server-id=110 两个主机my.ini唯一的区别就是server-id,
log-bin=mysql-bin
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=utf8
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=35M
thread_cache_size=8
# INNODB Specific options
innodb_additional_mem_pool_size=3M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=107M
innodb_log_file_size=54M
innodb_thread_concurrency=66

二、 配置server2向server1同步
进入Windows的命令行,
Cd到mysql的bin目录
执行mysql -uroot -p 进入数据库

1,在server1上创建copy用户并授权;

grant replication slave,reload,super on . to copy@'172.16.79.110' identified by '123456';

2,查询server1的mysql当前状态,并记录file和position的值:
Show master status;
Windows server 2012 搭建mysql双主_第1张图片
3, 停止服务器一mysql的slave:
show slave status;如果已经启动了slave,需要停止stop slave;
Windows server 2012 搭建mysql双主_第2张图片

4,server2同步server1的配置:

change master to master_host='172.16.79.112',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=510;

5,同步server1的mysql的slave:start slave;
show slave status;查看状态;
Windows server 2012 搭建mysql双主_第3张图片
确认已经开始了基于binlog的同步。

三、 配置server1同步server2
进入Windows的命令行,Cd到mysql的bin目录
执行mysql -uroot -p 进入数据库

1,在server2上创建copy用户并授权;

grant replication slave,reload,super on . to copy@'172.16.79.112' identified by '123456';

2,查询server1的mysql当前状态,并记录file和position的值:
Show master status;

3, 停止服务器一mysql的slave:
show slave status;如果已经启动了slave,需要停止stop slave;
4,server2同步server1的配置:
change master to master_host='172.16.79.112',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=510;

5,同步server2的mysql的slave:start slave;
show slave status;查看状态;

确认已经开始了基于binlog的同步。

四、 同步验证
在server1上创建数据库list
Windows server 2012 搭建mysql双主_第4张图片

在server2上查看情况
Windows server 2012 搭建mysql双主_第5张图片

在server2上删除数据库list,在server1上验证
Windows server 2012 搭建mysql双主_第6张图片

server1已经不存在list数据库。
Windows server 2012 搭建mysql双主_第7张图片