mysql主从复制(windows下)
简单搭建mysql主从服务器(双向复制),仅供学习之用。
1.下载mysql-advanced-5.6.16-winx64.zip
下载完成后解压,重命名成mysql,分别放入两台服务器(看第二点集群说明)下D盘根目录下,即:D:\mysql\bin
2.主从服务器说明
服务器A:192.168.121.132(Master/Slave)
服务器B:192.168.121.169(Master/Slave)
3.创建配置文件
A服务器:
[mysqld]
log_bin
basedir = d:/mysql
datadir = d:/mysql/data
port = 3306
server_id = 1
character-set-server = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=d:/mysql/log/mysqld.log
pid-file=d:/mysql/run/mysqld/mysqld.pid
B服务器:
[mysqld]
log_bin
basedir = d:/mysql
datadir = d:/mysql/data
port = 3306
server_id = 2
character-set-server = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=d:/mysql/log/mysqld.log
pid-file=d:/mysql/run/mysqld/mysqld.pid
4.安装mysql(A服务器和B服务器)
在A服务器上启动cmd命令行,进入目录d:\mysql\bin
运行命令:mysqld -install mysql(安装)
运行命令:net start mysql(启动服务)
B服务器与A服务器操作一致。
5.为两台服务器分别添加一个用于主从同步的用户:
A服务器:
执行命令:D:\mysql\binmysql -h localhost -u root -p (密码为空)
执行命令:create user pig@'%' identified by 'root';
执行命令:grant replication slave on *.* to pig@'%' identified by 'root';
执行命令:grant all privileges on *.* to pig@'%' identified by 'root';
执行命令:flush privileges;
B服务器:
启动CMD命令,进入D:\mysql\bin目录
执行命令:D:\mysql\binmysql -h localhost -u root -p (密码为空)
执行命令:create user pig@'%' identified by 'root';
执行命令:grant replication slave on *.* to pig@'%' identified by 'root';
执行命令:grant all privileges on *.* to pig@'%' identified by 'root';
执行命令:flush privileges;
6.启动主从同步
A服务器:
启动CMD命令,进入D:\mysql\bin目录
执行命令:D:\mysql\bin\mysql -h 192.168.121.132 -u pig -p root
执行命令:change master to master_host='192.168.121.169',
master_user='pig',
master_password='root';
执行命令:start slave;
到此为止B主——>A从的的模式已经搭建成功。
执行命令:show slave status \G(查看从机的情况)
B服务器:
启动CMD命令,进入D:\mysql\bin目录
执行命令:D:\mysql\bin\mysql -h 192.168.121.132 -u pig -p root
执行命令:change master to master_host='192.168.121.132',
master_user='pig',
master_password='root';
执行命令:start slave;
到此为止A主——>B从的的模式已经搭建成功。
执行命令:show slave status \G(查看从机的情况)
执行命令:show master status \G(查看主机的情况)
7.测试
A服务器上创建数据库,可以去B上查看是否同步成功。
B服务器上创建数据库,可以去A上查看是否同步成功。
说明:需要实时查看从机情况(show slave status \G),一旦出现异常,单向复制服务就会中断,不会跳过。
8.错误说明
错误一:主从server_id一致
执行命令:show variables like 'server_id'; 查看server_id
执行命令:set global server_id=100;修改server_id
错误二:主从uuids一致,这是由于两个数据库复制造成。
修改文件:d:\mysql\data\auto.cnf 用十六进制的值随便改一位就成了,确保主从不一致就行。