pycharm专业版可直接通过database工具连接mysql,社区版需用pymysql等库编码连接;关键步骤包括启用database tools插件、下载mysql jdbc驱动、正确配置host/port/user/password、勾选all schemas显示用户库,并处理时区、超时及权限问题。

PyCharm 专业版内置数据库工具能直接连 MySQL,不用写代码就能查表、跑 SQL;社区版不支持这个功能,必须用 pymysql 或 mysql-connector-python 手动编码连接。
PyCharm Pro 连 MySQL:驱动下载和测试连接是关键步骤
第一次配置时,Download missing driver files 链接一定会出现——不是可选项,是必点项。不点它,Test Connection 按钮始终灰掉,且报错 Driver not found。
- 点击
Download后等待进度条走完(通常 10–30 秒),别关对话框或切窗口,否则可能中断下载 - 下载完成后,
Driver下拉框会自动选中最新版MySQL Connector/J,不要手动切换成旧版本,否则可能触发Public Key Retrieval is not allowed错误 -
Host填127.0.0.1或localhost都行,但注意:如果 MySQL 服务绑定在127.0.0.1而你填了localhost,某些系统(如 macOS)会走 socket 而非 TCP,导致连接失败 -
Port默认是3306,确认你的 MySQL 实际监听端口是否一致(可通过mysql -u root -p -e "SHOW VARIABLES LIKE 'port';"查)
连上了却看不到库?Schemas 设置要手动打开
连接成功后左侧只显示四个系统库(information_schema、mysql 等),自己建的库不出现——这不是连错了,是 PyCharm 默认只加载当前登录用户的默认库,其他库被隐藏了。
- 右键已连接的数据源 →
Properties→ 切到Schemas标签页 - 勾选
All Schemas,或者手动在下方列表里勾选你要看的具体库名(比如myapp_db) - 点
OK后刷新,库和表才会出现在左侧树形结构中 - 如果不勾,即使你在
Console里执行USE myapp_db,表结构也不会自动展开
PyCharm 社区版用户:用 pymysql 连 MySQL 的最小可行配置
社区版没有 Database 工具窗口,只能靠代码连。最简能跑通的配置就三件事:装包、连上、设游标类型。
- 运行
pip install pymysql,别用mysqlclient—— 它依赖 C 编译环境,在 Windows 上容易卡在vcvarsall.bat报错 - 连接时必须显式传
charset="utf8mb4",否则中文插入会报Incorrect string value - 想让
fetchall()返回字典而非元组,得加cursorclass=pymysql.cursors.DictCursor,否则字段顺序靠猜,改 SQL 字段顺序就崩 - 别忘了
db.commit()——INSERT/UPDATE/DELETE不提交,数据不会真写进库
示例片段:
import pymysql
db = pymysql.connect(
host="127.0.0.1",
user="root",
password="123456",
database="test_db",
charset="utf8mb4",
cursorclass=pymysql.cursors.DictCursor
)
cursor = db.cursor()
cursor.execute("SELECT * FROM users LIMIT 1")
print(cursor.fetchone()) # 输出是 dict,不是 tuple
db.close()
连接后常见卡点:时区、超时、权限三类问题最常被忽略
连得上不代表能稳定用。很多查询返回空或报错,根源不在 SQL 本身,而在连接层配置。
- MySQL 服务端时区是
+08:00,PyCharm 默认用系统时区,可能导致DATETIME字段读出来偏移 8 小时——在数据源Options标签页里填serverTimezone=GMT%2B8(URL 编码后的GMT+8) - 远程 MySQL 如果启用了
wait_timeout(默认 28800 秒),闲置连接会被断开,PyCharm 会报Lost connection to MySQL server during query—— 开启每隔一段时间运行保持活动查询,填30秒即可 - 用户权限不够时,
Test Connection可能成功,但点开某个库就报Access denied for user—— 用SHOW GRANTS FOR 'user'@'host';在 MySQL 命令行确认是否有SELECT权限,而不仅是USAGE
这些设置藏得深,但改完立刻生效,比反复重装驱动或重启 IDE 有效得多。











