Windows下MySQL5.7主从复制数据库搭建

下面是同一台电脑下 MySQL主从数据库的搭建方法:

 

my.ini文件
[client]
no-beep
port=3306
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]  
port=3306
server_id = 1  #主库和从库需要不一致,配一个唯一的ID编号,1至32。 手动设定
log-bin=mysql-bin #二进制文件存放路径,存放在根目录data
basedir="D:\mysql-5.7.20-win32"
datadir="D:\mysql-5.7.20-win32\data\"
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
max_connections=200
query_cache_size= 64M
key_buffer_size=8M
innodb_log_buffer_size= 8M
innodb_buffer_pool_size = 512M
innodb_log_file_size= 256M
join_buffer_size=128M
sort_buffer_size=2M
read_rnd_buffer_size=2M
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

[WinMySQLAdmin]
Server =D:\mysql-5.7.20-win32\bin\mysqladmin.exe

一、安装 MySQL 主库和 mysqlslave 从库
安装 MySQL 主库
cmd进入bin下执行:mysqld -install
再执行: mysqld --initialize-insecure --user=mysql  //生成data目录 

安装mysqlslave从库
复制一份D:\mysql-5.7.20-win32,并命名为D:\mysql-5.7.20-win32-slave

新建一个mysqlslave服务,防止和刚安装的mysql服务冲突
sc create mysqlslave binPath= "D:\mysql-5.7.20-win32-slave\bin\mysqld.exe" TYPE= "own" start= "auto" TAG= "no" DisplayName= "mysqlslave"

删除D:\mysql-5.7.20-win32-slave\data下的auto.cnf

二、配置主库
1.停止主mysql:net stop mysql

2.主库里my.ini文件
port = 3306
server_id=1  #主库和从库需要不一致
log-bin=mysql-bin #二进制文件存放路径,存放在根目录data

3.保存,重启主库,net start mysql

4.在主库中建立一个用户(专门用给从库连接的,注意这是在主库里面建立的)
mysql -uroot -p //此处如果是第一次安装不需要输入密码就可以直接登录(进入后请执行update mysql.user set authentication_string=password('123456') where user='root' and host = 'localhost'; 设置主库root的密码,重启主库后生效)
grant replication slave,reload,super on *.* to myslave@localhost identified by '123456';   //myslave是用户名,myslave密码是用户对应的密码,localhost也可以写ip

5.刷新权限 flush privileges;

6.show master status \G; # 找到 File 和 Position 的值记录下来


三、配置从库

1.新启一个cmd,进入从库的bin目录,停止从库 net stop mysqlslave

2.拷贝主库的my.ini到从库,并修改从库的my.ini
port = 3307
server_id=2 #主库和从库需要不一致
basedir="D:\mysql-5.7.20-win32-slave"
datadir="D:\mysql-5.7.20-win32-slave\data\"

3.重启从库, net start mysqlslave并用mysql -uroot -p后输入密码(同理第一次不用输入密码,再执行update mysql.user set authentication_string=password('123456') where user='root' and host = 'localhost'; 设置从库root的密码,重启从库后生效),进行root登录

4.在从库执行
change master to  master_host='127.0.0.1',master_user='myslave',master_password='123456', master_log_file='mysql-bin.000001',master_log_pos=1282;  //注意master_log_file和master_log_pos为上面记录主库的对应值
//如果你的主库还有是其他端口的话,master_port=端口号

5.从库 执行 stop slave; 再执行 start slave;

6.从库查看 :show slave status \G;

7.如果看到了Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
            ...
            Last_IO_Errno: 0
            Last_IO_Error:
说明搭建成功了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单前行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值