Windows同一台服务器mysql主从配置方式

mysql主从库配置方式
先下载mysql数据库绿色安装包(下载地址),解压为两份,一份为mysql主库(D:/mysql/mysql5.6.17),一份为mysql从库(D:/mysql/mysql5.6.17_slave)

【一】、主库my.ini配置信息

server-id	= 1
port=3306
basedir=D:/mysql/mysql5.6.17
datadir=D:/mysql/mysql5.6.17/data
explicit_defaults_for_timestamp = TRUE
binlog-do-db=test 
#binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
#binlog-ignore-db=不需要复制的数据库名,如果不需要复制多个数据库,重复设置这个选项即可

【一.1】、打开cmd,先(cd)进入到主库的bin目录,然后使用命令安装主库服务:

mysqld install mysql1 --defaults-file="D:\mysql\mysql5.6.17\my.ini

【一.2】、到【控制面板】->【服务】中启动主数据库服务
【一.3】、先使用命令连接主库:

mysql -uroot -p -P3306   

【一.4】、创建同步用户

create user 'syncuser'@'127.0.0.1' identified by '123456';

【一.5】、分配同步用户权限

grant replication slave on *.* to 'syncuser'@'127.0.0.1' identified by '123456';

【一.6】、通过命令:show master status, 查看主库状态(查询字段:File和Position,这两个字段分别对应【三.4】中命令参数master_log_file和master_log_pos)

【二】、从库my.ini配置信息
从库my.ini配置信息

[mysqld]
port= 3307
basedir=D:/mysql/mysql5.6.17_slave
datadir=D:/mysql/mysql5.6.17_slave/data
skip-slave-start
server-id = 2

【二.1】、打开cmd,先(cd)进入到主库的bin目录,然后使用命令安装从库服务:

mysqld install mysql2 --defaults-file="D:\mysql\mysql5.6.17_slave\my.ini

【三】、配置主从设置
【三.1】、先修改从库data目录下的auto.cnf里的uuid(确保uuid的位数是36位)(或者直接删掉,带启动从库服务的时候自动生成)(防止出现uuid重复错误)
【三.2】、到【控制面板】->【服务】中启动数据库服务
【三.3】、先使用命令连接从库:

mysql -uroot -p -P3307

【三.4】、连接成功后,输入命令,

mysql>change master to master_host='127.0.0.1',master_port=3306,master_user='syncuser',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=498; 

【三.5】、启动主从复制功能, 输入命令:

start slave;

【三.6】、查看从库状态, 输入命令:

mysql>show slave status;

如果Slave_IO_Running | Slave_SQL_Running 两个字段值都为yes,则配置成功。

-----如果配置存在问题,可以查看从库mysql2下的data里面以err为结尾的日志

【四】测试验证
【四.1】、在主库上执行创建数据库脚本

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `account` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `user` VALUES (1, 'user1', 'user1', 'user1');
INSERT INTO `user` VALUES (2, 'user2', 'user2', 'user2');
INSERT INTO `user` VALUES (3, 'user3', 'user3', 'user3);

【四.2】、查看从库是否也同时创建了user表,如果创建成功且新增了同主库一样的数据,则说明主从同步设置成功

【五】、配置注意的问题:
binlog_do_db的配置方式,如果有多个数据库需要被同步,则配置方式为
binlog_do_db=database1
binlog_do_db=database2
如果不设置binlog_do_db,则同步所有数据库,可通过binlog-ignore-db排除不同步的数据库

show master status: 查看主库状态(查询字段:File和Position)

skip-slave-start:从库复制进程不随mysql启动而启动
(就是说主库重新启动后,原来的从库会重头复制原来的主库,这样子就会导致已经同步的数据再次同步而产生冲突)

【六】、相关命令语句
安装mysql服务命令

mysqld install mysql2 --defaults-file="D:\mysql\mysql5.6.17_slave\my.ini

删除数据库服务命令

sc delete mysql2 -- 这里的mysql是你要删除的服务名

配置主从命令(主库的File和Position分别对应参数master_log_file和mast_log_pos)

change master to master_host='127.0.0.1',master_port=3306,master_user='mytest',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=498;

打开从库复制功能

start slave;

停止主从复制功能

stop slave;

查看主库master状态

show masterstatus;

查看从库slave状态

show slave status;

猜你喜欢

转载自blog.csdn.net/teamo_m/article/details/105783416