windows上mysql如何进行主从数据库搭建及问题是什么

网友投稿 158 2023-12-26

windows上mysql如何进行主从数据库搭建及问题是什么

今天就跟大家聊聊有关windows上mysql如何进行主从数据库搭建及问题是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

windows上mysql如何进行主从数据库搭建及问题是什么

根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上搭建了主从结构的mysql,这里在记录下在本机模拟搭建过程

在windows上安装和linux还是有些不同,不注意就会耽误不少时间

一 -安装包和安装

https://dev.mysql.com/downloads/file/?id=469273 -的安装包是Archive

需要手工安装且建立服务和初始化data目录,具体可以在网上搜索有很多具体安装方法。

二 建立从节点

1把主服务器的安装目录C:\Program Files\MySQL\MySQL Server 5.7所有文件都copy到另一个目录D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7。

2修改复制过来的my.ini文件参数

包括端口和路径

port = 3307

basedir = "D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7"

datadir = "D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\data"

3建立mysql从服务器服务

mysqld install MySQLM --defaults-file="D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini"

4修改对应注册表里服务启动项的内容

注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath里使用的路径改成

"D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\bin\mysqld" --defaults-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini MySQLS

mysqld_multi.pl --defaults-extra-file=D:\anzhuang\MySQL\mysqlSlave\MySQL Server 5.7\my.ini start 3307

以便启动mysql时可以找到对应my.ini文件启动

三 主节点配置

1修改主节点和从节点上my.ini

[mysqld]

server-id = 1  

binlog-do-db=test #要同步的数据库

#binlog-ignore-db=mysql   #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

log-bin=mysql-bin #要生成的二进制日记文件名称

修改从配置文件:

[mysqld]

server-id = 2

log-bin    = mysql-bin

replicate-do-db=test

2上创建用户并授权

create user repla@127.0.0.1 identified by test;

GRANT REPLICATION SLAVE ON *.* TO repla@127.0.0.1;

3创建test数据库

4 物理备份test目录到从库

把datadir指定的目录的data目录copy到从目录

5 show master status

查看file和position字段对应的参数;

+------------------+----------+--------------+------------------+--------------

----+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid

Set |

+------------------+----------+--------------+------------------+--------------

----+

| mysql-bin.000006 |     1847 | test         |                  |

    |

+------------------+----------+--------------+------------------+--------------

四从节点配置

1启动从节点mysql服务

mysql -uroot -P3307 -p123456 如果端口不同,必须制定端口,才能在一台机器上同时启动多实例

2 接收主节点传送日志

change master to master_host=127.0.0.1,master_port=3306,master_user=repla,master_password=test,master_log_file=mysql-bin.000006,master_log_pos=1847;

3启动从数据库复制功能

start slave

最后在主库插入数据后,从库就能看到主库的数据了。

问题总结

1这里的my.ini文件在注册表里有指定,无论是否使用命令指示使用自己命令的ini,系统都会根据注册表里的my.ini文件位置去读取并启动db。

比如用命令C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql --defaults-file="D:\anzhuang\MySQL\my.ini" -uroot -p

想使用自己定义的my.ini.但注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL57\ImagePath里使用的路径不是

这个路径时,还会按照注册表的路径读取文件。

如果在windows上安装,要正确识别my.ini位置,具体可根据服务选择或注册表信息判断my.ini位置

2 备份时可采用物理备份和逻辑备份,如果是物理备份注意把主库的data目录下的全部文件复制到slave

这个data目录一定是datadir参数中指定的目录,这点可能会采用软件安装目录下的data目录而不是数据目录

3 采用物理备份时很可能把auto-f文件也复制到slave,造成主备之间的UUID不一致,这里的解决办法是在slave

重新命名auto-f,然后重启备库,重新生成新的UUID

可以参考网址http://www.linuxidc.com/Linux/2015-02/113564.htm

4 在slave上需要验证主从是否开始传送日志方法

mysql> show slave status\G

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 127.0.0.1

Master_User: repla

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000011

          Read_Master_Log_Pos: 1684

Relay_Log_File: SDSC-WIN7-ZHANGLU-relay-bin.000002

                Relay_Log_Pos: 1595

Relay_Master_Log_File: mysql-bin.000011

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: test

    ......

Slave_IO_Running: Yes Slave_SQL_Running: Yes都是Yes 就对了。

 可能出现问题是要多次stop slave后多次执行change master to命令。

看完上述内容,你们对windows上mysql如何进行主从数据库搭建及问题是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何进行MySQL句柄恢复的简单尝试
下一篇:MySQL中一条SQL使磁盘暴涨并导致MySQL Crash该怎么办
相关文章

 发表评论

暂时没有评论,来抢沙发吧~