当前位置:首页 > 后端开发 > Windows下如何配置MySQL数据库主从

Windows下如何配置MySQL数据库主从

紫茹1年前 (2023-12-31)后端开发337

要实现两台服务器上的MySQL数据库数据同步更新,你可以考虑使用MySQL的复制功能。MySQL支持主从复制,这样你可以设置一台服务器作为主服务器(Master),另一台服务器作为从服务器(Slave)。当你在主服务器上修改数据时,这些修改会自动复制到从服务器上,从而保持两台服务器上的数据同步。

以下是实现这一目标的详细步骤:

1. 在主服务器上配置MySQL复制

a. 打开MySQL配置文件(从宝塔面板操作比较方便)

  • 找到my.inimy.cnf文件,这取决于你的MySQL安装。通常,这些文件位于C:\Program Files\MySQL\MySQL Server x.x\或类似的路径。

b. 添加复制配置

  • [mysqld]部分下添加以下配置:
 
server-id = 1 # 主服务器的唯一ID
 
log_bin = mysql-bin.log # 日志文件的名称,可以根据需要更改
 

binlog_do_db = your_database_name # 需要同步的数据库名

replicate-ignore-db = your_database_name #不需要同步的数据库名

c. 重启MySQL服务

  • 重启MySQL服务以使更改生效。在命令行中运行以下命令:(从宝塔面板操作比较方便)
 
net stop MySQL56 # 或你的MySQL服务名
 
net start MySQL56 # 或你的MySQL服务名

2. 在从服务器上配置MySQL复制

a. 打开MySQL配置文件(从宝塔面板操作比较方便)

  • 找到my.inimy.cnf文件,并打开它。

b. 添加复制配置

  • [mysqld]部分下添加以下配置:
 
server-id = 2 # 从服务器的唯一ID,确保与主服务器不同
 
relay_log = mysql-relay-bin.log # 中继日志文件的名称,可以根据需要更改
 
log_bin = mysql-bin.log # 日志文件的名称,可以从主服务器复制或手动创建
 
read_only = 1 # 设置为只读,防止在从服务器上进行写操作
 

binlog_do_db = your_database_name # 需要同步的数据库名

replicate-ignore-db = your_database_name #不需要同步的数据库名

  • 注意:log_bin的值应该与主服务器上的值相同或相似,但后缀不同以区分主从服务器。

c. 重启MySQL服务

  • 重启MySQL服务以使更改生效。在命令行中运行以下命令:(从宝塔面板操作比较方便)
 
net stop MySQL56 # 或你的MySQL服务名
 
net start MySQL56 # 或你的MySQL服务名

3. 在主服务器上设置复制用户并授权

  • 使用以下命令创建一个复制用户并为其授权:(从任何途径创建用户都可以,只要保证从服务器可以正常登录就可以)
 

CREATE USER 'slave'@'%' IDENTIFIED BY '@#$Rfg345634523rft4fa';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

 

SHOW MASTER STATUS; # 记录下输出的File和Position值,稍后用于从服务器配置。

备注:Position值在数据库数据变化后会变化,在slave端未设置成功之前不要操作主数据库,或者操作之前给主数据库加锁

  • 将得到的File和Position值记下来,稍后配置从服务器时会用到。

4. 在从服务器上配置复制并启动复制进程

  • 使用以下命令配置并启动复制进程:(有在运行的配置时先执行:STOP SLAVE; 暂停复制进程)
 
CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='log_file_from_master', MASTER_LOG_POS=log_position_from_master;
 
START SLAVE; # 启动复制进程
  • 将上述命令中的master_ip_addressreplication_userpasswordlog_file_from_masterlog_position_from_master替换为相应的值。
  • 检查从服务器的复制状态以确保一切正常:
 
SHOW SLAVE STATUS; # 检查输出中的Slave_IO_Running和Slave_SQL_Running的值是否都为Yes。
  • 如果一切正常,你应该看到这两个值都为Yes。如果出现问题,请检查错误日志并解决相关问题。

5. 监控和定期检查复制状态和数据一致性

  • 定期检查复制状态和数据一致性,确保数据能够正确地从主服务器复制到从服务器。

扫描二维码手机访问。

版权声明:本文由皓维工作室发布,如需转载请注明出处。

本站大部分资源收集于网络,只做学习和交流使用,版权归原作者所有。
若您需要使用非免费的软件或服务,请购买正版授权并合法使用!
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!

本文链接:https://shiziru.com/post/32.html

分享给朋友:
返回列表

没有更早的文章了...

没有最新的文章了...

“Windows下如何配置MySQL数据库主从” 的相关文章