目前很多电商在使用mysql作为存储数据的载体,很多时候频繁查询数据库会有一些性能瓶颈,这时,采用mysql集群是一个好的选择,今天记录下关于mysql的主从复制问题。


我的mysql版本是5.6.37(root,123456),系统环境windows10,由于是在自己机器上搭建的,所以IP统一设置成127.0.0.1,如果是搭建在真实环境下的话,IP换成真是IP即可。

【windows下安装多个mysq服务】

1.下载mysql5.6.37压缩包;

2.解压缩,放到某个盘下(我放在  D:\API\mysql5.6.37 , D:\API\mysql5.6.37.2),这里放了两个文件夹,前者做主库,负责读写,后者作为从库,只负责读取数据;

3.编辑主库的my.ini文件(将my-default.ini改名为my.ini),编辑内容如下:

[mysqld]

basedir = D:\API\mysql5.6.37
datadir = D:\API\mysql5.6.37\data
port = 3306

server_id = 1
log_bin = mysql-bin
binlog-do-db = sampledb

4.编辑从库的my.ini文件(将my-default.ini改名为my.ini),编辑内容如下:

[client]

port=3307
default-character-set=utf8

[mysqld]

basedir = D:\API\mysql5.6.37.2
datadir = D:\API\mysql5.6.37.2\data
port = 3307
server_id = 2
replicate-do-db = sampledb

character_set_server=utf8
default-storage-engine=MYISAM


5.注册主库mysql服务,以管理员身份运行cmd.exe,进入到 D:\API\mysql5.6.37 \bin目录下,mysqld  -install MYSQL;

6.注册从库mysql服务,以管理员身份运行cmd.exe,进入到 D:\API\mysql5.6.37.2 \bin目录下,mysqld  -install MYSQL3307,注册从库成功后需要修改ImagePath,

HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services
找到刚才创建的MySQL2,将ImagePath修改成如下":
"D:\API\mysql5.6.37.2 \bin\mysqld" MySQL3307

【主从数据库下操作】

1.以管理员身份运行cmd.exe,进入主库的bin目录下,mysql -u root -p 123456,回车,grant replication slave,reload,super,create,select,insert,update,delete on *.* to [email protected]'127.0.0.1' Identified by "123";创建dog用户,密码123,并且给予主从复制权限和其他权限,show master status;查看日志的情况(后面从库开始同步需要用到);

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000010 |      665 | sampledb     |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)


2.以管理员身份运行cmd.exe,进入从库的bin目录下,mysql -u root -p 123456,回车(如果没有密码的话,建议更改下密码,安全,模拟真实场景嘛),

change master to master_host='127.0.0.1',master_user='dog',master_password='123', master_log_file='mysql-bin.000010',master_log_pos=665;

设置完之后,执行 mysql> start slave;

开启slave线程;执行mysql> show slave status\G
window环境下mysql主从复制


关注

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

都是YES,表示成功


此时,可用navicate工具链接dog用户和从库的root用户,在dog用户下已有数据库sampledb下创建表,然后插入记录,可在从库的root下看到同步过去了

注意:最好是先用主库和从库root用户创建好需要的数据库,然后在主库下show master status记录日志的位置,再在从库下设置同步开始,生产上一般也是给你创建,删除,更新操作权限,很少给建库权限的,至此主从同步完成


window环境下mysql主从复制




相关文章:

  • 2021-07-28
  • 2022-01-29
  • 2022-12-23
  • 2021-05-28
  • 2021-03-30
  • 2021-08-25
  • 2021-11-01
  • 2021-07-08
猜你喜欢
  • 2022-02-17
  • 2021-11-23
  • 2021-09-17
  • 2021-11-22
  • 2022-12-23
  • 2021-08-11
  • 2021-08-30
相关资源
相似解决方案