数据库连接配置不会随Settings Repository或Settings Sync自动迁移,必须手动处理;dataSources.xml可导出复用,但含密码的dataSources.local.xml被IDE默认排除,SSH隧道、驱动版本、密钥路径等需逐项核对重配。

数据库连接配置不会随 Settings Repository 或 Settings Sync 插件自动迁移,必须手动处理;漏掉它,新设备上点 Test Connection 会直接报 Access denied 或 Connection refused。
为什么导出设置不管用
PhpStorm 的 File → Export Settings… 只打包 config 目录下的 UI、插件、模板等,而数据库连接信息实际存放在 dataSources.xml(位于 config/options/)和 dataSources.local.xml(含密码明文或加密 blob)中。后者默认被 IDE 排除在导出范围外——这是 JetBrains 的安全设计,但也意味着你必须单独拎出来。
-
dataSources.xml记录连接结构(驱动、URL 模板、SSL 开关等),可导出复用 -
dataSources.local.xml存密码、SSH 密钥路径、本地隧道绑定端口等敏感字段,不能直接复制,需重填或脱敏后迁移 - Settings Sync 插件即使勾选了
Data Sources,也只同步前者,且对 SSH 隧道配置支持极弱
手动迁移 dataSources.xml 的实操要点
适合已知两台设备环境一致(如都是 Ubuntu + MySQL + SSH 隧道)、且不涉及密码变更的场景。
- 关闭 PhpStorm,防止文件被锁
- 定位源设备的
config/options/目录:
Linux:~/.config/JetBrains/PhpStorm<version>/options/</version>
macOS:~/Library/Preferences/JetBrains/PhpStorm<version>/options/</version>
Windows:%USERPROFILE%\.PhpStorm<version>\config\options\</version> - 复制
dataSources.xml到目标设备对应路径,**不要覆盖**dataSources.local.xml - 启动 PhpStorm 后,在
Database工具窗口里右键对应数据源 →Properties→ 重新输入密码、确认 SSH 私钥路径(如~/.ssh/id_rsa)并检查权限是否为600 - 若原连接用了自定义 JDBC 参数(如
serverTimezone=Asia/Shanghai),需在Advanced选项卡里手动补上
云服务器数据库连接迁移时最易踩的坑
迁移到新设备后 Test Connection 失败,90% 出在以下三点,不是配置没传过去,而是环境假设错了:
立即学习“PHP免费学习笔记(深入)”;
- SSH 密钥路径变了:源设备用的是
/home/alice/.ssh/id_rsa,目标设备用户是bob,密钥在/home/bob/.ssh/—— 必须进数据源SSH/SSL选项卡更新路径,不能只靠复制 XML - 数据库用户权限仍是
'user'@'%':SSH 隧道下数据库看到的是127.0.0.1,必须确保云服务器上执行过CREATE USER 'user'@'localhost',否则连通性测试必挂 - 驱动版本不匹配:阿里云 RDS 要求 MySQL Connector/J 8.0.33+,但旧设备装的是 5.1.x,迁移 XML 后新设备仍用旧驱动,会报
Public Key Retrieval is not allowed—— 需在数据源Driver页点击Download更新
vmoptions 文件也要一起动
这不是数据库配置,但影响连接稳定性:如果目标设备内存小、而 phpstorm64.vmoptions 里还写着 -Xmx4g,IDE 启动就卡死,根本进不了 Database 窗口。这个文件完全独立于所有设置同步机制,必须单独备份迁移。
- 先用
find ~ -name "*vmoptions" 2>/dev/null定位真实路径 - 修改前确认目标设备物理内存,把
-Xmx调到不超过总内存的 60% - Linux snap 版用户注意:别改
/var/lib/snapd/...下的文件,改~/.config/JetBrains/PhpStorm<version>/phpstorm64.vmoptions</version>
真正麻烦的从来不是“怎么传”,而是“传完之后哪些东西必须人眼核对、哪些必须重填”。数据库连接这种强依赖环境的配置,XML 只能搬骨架,血肉得自己一处处接上。


















