You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Electron连接远程MySQL数据库失败,求正确配置及同步方案

解决Electron中MySQL远程连接失败及数据同步问题

一、先修正远程连接代码的核心错误

你的远程连接代码有两个致命问题,直接导致连接失败:

  1. host字段格式错误:MySQL用TCP协议连接,不需要带https://前缀,直接填远程服务器的域名或公网IP即可
  2. localAddress参数无效:这个参数用于指定本地出口IP,不需要设为字符串'false',直接删掉该参数即可

修正后的远程连接代码:

const mysql = require('mysql');

const dbremota = mysql.createConnection({
    host: 'example.es', // 仅保留域名/IP,去掉https://
    user: 'root_example',
    password: 'example_password',
    database: 'test',
    port: 3306, // 可选,默认3306,若远程端口修改过需对应调整
    connectTimeout: 10000 // 可选,延长超时时间,适配网络延迟
});

// 新增连接状态监听,方便快速排查问题
dbremota.connect((err) => {
  if (err) {
    console.error('远程数据库连接失败:', err);
    return;
  }
  console.log('已成功连接到远程数据库');
});

module.exports = dbremota

二、远程MySQL服务器必须配置的关键项

代码改对后,还得确保服务器端配置到位,否则依然连不上:

  • 防火墙/安全组:开放远程服务器的3306端口(或自定义MySQL端口),允许你的本地公网IP访问
  • 用户权限设置:给远程连接用户授予跨IP访问权限,执行以下SQL:
    GRANT ALL PRIVILEGES ON test.* TO 'root_example'@'%' IDENTIFIED BY 'example_password';
    FLUSH PRIVILEGES;
    
    (如果要限制特定IP,把%替换成你的本地公网IP)
  • MySQL配置文件:修改my.cnf(Windows为my.ini),将bind-address改为0.0.0.0(允许所有IP连接),然后重启MySQL服务

三、本地与远程数据库同步的实现方案

方案1:单向同步(本地→远程)

每次本地操作数据后,同步执行远程操作,比如修改你的addProduct函数:

const dbLocal = require('./database');
const dbRemote = require('./database-remote');

function addProduct(obj) {
  const sql = "INSERT INTO product SET ?";
  // 先插入本地
  dbLocal.query(sql, obj, (localErr) => {
    if(localErr) {
       console.log('本地插入失败:', localErr);
       return;
    }
    // 再同步到远程
    dbRemote.query(sql, obj, (remoteErr) => {
      if(remoteErr) {
        console.log('远程同步失败:', remoteErr);
      } else {
        console.log('数据已同步到远程');
      }
      getProducts();
    });
 });
}

方案2:双向同步(本地↔远程)

如果需要两边数据互相同步,推荐两种方式:

  1. 定时增量同步:用node-schedule包定时拉取两边的新增/修改数据,对比后同步
  2. MySQL主从复制:将远程数据库设为主库,本地设为从库,实现自动同步;若需要双向写入,可配置双向主从架构

四、Electron环境的额外注意事项

  • 若mysql包出现编译错误,用electron-rebuild重新编译依赖:
    npx electron-rebuild
    
  • 不要把数据库密码硬编码在代码中,建议通过用户界面输入或加密配置文件存储

内容的提问来源于stack exchange,提问作者Francisco S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:46