Flutter Windows应用连接MySQL服务器是否需添加网络权限?
Flutter Windows端无法连接MySQL的解决方案
是的,Windows平台需要配置网络相关的权限和设置,和Android的配置逻辑不同,具体操作如下:
1. 配置项目权限声明
在项目的windows/runner/Runner.rc文件中,修改TEXTINCLUDE 2区块,添加网络相关的宏定义:
2 TEXTINCLUDE BEGIN "#include ""windows.h""\r\n" "#define IDC_MYICON 101\r\n" "#define _WIN32_WINNT 0x0601\r\n" // 新增这两行以启用网络支持 "#define NTDDI_VERSION NTDDI_WIN7\r\n" "#define WIN32_LEAN_AND_MEAN\r\n" "\r\n" "#include ""resource.h""\r\n" "\0" END
同时在windows/runner/CMakeLists.txt中,确保链接网络库:
target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) target_link_libraries(${BINARY_NAME} PRIVATE ws2_32.lib)
2. 调整Windows防火墙设置
Windows防火墙默认可能会拦截Flutter应用的网络请求:
- 打开「Windows Defender防火墙」→「允许应用通过防火墙」
- 点击「更改设置」,找到你的Flutter Windows应用(路径一般为
项目根目录/build/windows/runner/Release/xxx.exe),勾选「专用网络」和「公用网络」权限
3. 确认MySQL服务器的访问权限
检查DigitalOcean上的MySQL配置:
- 确保MySQL的防火墙规则允许Windows设备的公网IP访问
- 确认MySQL账号的权限设置,比如使用
GRANT ALL ON 数据库名.* TO '用户名'@'Windows设备IP' IDENTIFIED BY '密码';,或者允许任意IP(@'%')访问(注意安全风险)
内容的提问来源于stack exchange,提问作者AkshatModi99
相关产品推荐
相关产品推荐

