windows上mysql如何进行主从数据库创建及问题是什么
发布时间:2021-12-20 11:27:40 所属栏目:通讯 来源:互联网
导读:今天就跟大家聊聊有关windows上mysql如何进行主从数据库搭建及问题是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上
今天就跟大家聊聊有关windows上mysql如何进行主从数据库搭建及问题是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上搭建了主从结构的mysql,这里在记录下在本机模拟搭建过程 在windows上安装和linux还是有些不同,不注意就会耽误不少时间 一 下载安装包和安装 https://dev.mysql.com/downloads/file/?id=469273 下载的安装包是Archive 需要手工安装且建立服务和初始化data目录,具体可以在网上搜索有很多具体安装方法。 二 建立从节点 1把主服务器的安装目录C:Program FilesMySQLMySQL Server 5.7所有文件都copy到另一个目录D:anzhuangMySQLmysqlSlaveMySQL Server 5.7。 2修改复制过来的my.ini文件参数 包括端口和路径 port = 3307 basedir = "D:anzhuangMySQLmysqlSlaveMySQL Server 5.7" datadir = "D:anzhuangMySQLmysqlSlaveMySQL Server 5.7data" 3建立mysql从服务器服务 mysqld install MySQLM --defaults-file="D:anzhuangMySQLmysqlSlaveMySQL Server 5.7my.ini" 4修改对应注册表里服务启动项的内容 注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesMySQL57ImagePath里使用的路径改成 "D:anzhuangMySQLmysqlSlaveMySQL Server 5.7binmysqld" --defaults-file=D:anzhuangMySQLmysqlSlaveMySQL Server 5.7my.ini MySQLS mysqld_multi.pl --defaults-extra-file=D:anzhuangMySQLmysqlSlaveMySQL Server 5.7my.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 FilesMySQLMySQL Server 5.7bin>mysql --defaults-file="D:anzhuangMySQLmy.ini" -uroot -p 想使用自己定义的my.ini.但注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesMySQL57ImagePath里使用的路径不是 这个路径时,还会按照注册表的路径读取文件。 如果在windows上安装,要正确识别my.ini位置,具体可根据服务选择或注册表信息判断my.ini位置 2 备份时可采用物理备份和逻辑备份,如果是物理备份注意把主库的data目录下的全部文件复制到slave 这个data目录一定是datadir参数中指定的目录,这点可能会采用软件安装目录下的data目录而不是数据目录 3 采用物理备份时很可能把auto.cnf文件也复制到slave,造成主备之间的UUID不一致,这里的解决办法是在slave 重新命名auto.cnf,然后重启备库,重新生成新的UUID 可以参考网址http://www.linuxidc.com/Linux/2015-02/113564.htm 4 在slave上需要验证主从是否开始传送日志方法 mysql> show slave statusG *************************** 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如何进行主从数据库搭建及问题是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。 (编辑:91站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |