如何使用Pomelo EF Core驱动同时连接ASP.NET Core与MySQL主从服务器?
解决Pomelo驱动MySQL主从连接读写分离问题
你的连接字符串写法有误,Pomelo驱动无法识别
server参数里逗号分隔的主从地址,需使用专门的replica server参数指定从库:
正确的连接字符串格式:server=master.domain.com;port=3306;user=user;password=mysosecretpassword;database=mydb;replica server=slave.domain.com;多从库场景用逗号分隔:
replica server=slave1.domain.com,slave2.domain.com;确保使用的
Pomelo.EntityFrameworkCore.MySql版本在3.2.0及以上,该版本开始正式支持读写分离路由功能纠正测试方式:不要手动修改从库数据,主从复制是主库同步到从库,手动修改会导致数据不一致。正确测试流程:
- 在主库插入/更新一条数据
- 等待主从同步完成
- 用应用执行SELECT查询
- 查看从库的连接日志或慢查询日志,确认请求是否到达从库
代码层面补充配置(可选):如果需要更精细的读写分离控制,可在DbContext配置中指定查询拆分行为,确保查询路由到从库:
services.AddDbContext<YourDbContext>(options => { options.UseMySql(yourConnectionString, ServerVersion.AutoDetect(yourConnectionString)) .UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery); });
内容的提问来源于stack exchange,提问作者platypus
相关产品推荐
相关产品推荐

