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

Python 3.10连接Planetscale MySQL失败求助:SSL连接错误

可行的Planetscale MySQL连接方案(Python 3.10)

1. 解决mysql-connector-python的SSL验证错误

你遇到的SSL_CTX_set_default_verify_paths failed错误,本质是系统找不到默认SSL根证书,或者库的SSL配置不兼容。可以通过两种方式修复:

方式一:手动指定CA证书

下载Let's Encrypt的根证书(Planetscale使用该证书),然后在连接时指定证书路径:

import mysql.connector

try:
    conn = mysql.connector.connect(
        user="你的数据库用户名",
        password="你的数据库密码",
        host="你的Planetscale主机地址",
        database="你的数据库名",
        ssl_ca="/绝对路径/cacert.pem",
        ssl_disabled=False
    )
    print("连接成功")
except Exception as e:
    print(f"错误: {e}")
finally:
    if 'conn' in locals():
        conn.close()

方式二:临时关闭SSL验证(仅测试用,生产不推荐)

如果只是测试连接是否能通,可以关闭SSL验证:

conn = mysql.connector.connect(
    # 其他参数不变
    ssl_disabled=True
)

2. 换用pymysql库连接

pymysql对SSL的兼容性更好,很多情况下能绕过这类问题:

先安装依赖:

pip install pymysql

然后用以下代码连接:

import pymysql

try:
    conn = pymysql.connect(
        host="你的Planetscale主机地址",
        user="你的数据库用户名",
        password="你的数据库密码",
        database="你的数据库名",
        ssl_mode="REQUIRED"
    )
    # 测试查询
    with conn.cursor() as cursor:
        cursor.execute("SELECT VERSION()")
        print("连接成功,MySQL版本:", cursor.fetchone()[0])
except Exception as e:
    print(f"错误: {e}")
finally:
    if 'conn' in locals():
        conn.close()

如果还是有SSL问题,试试关闭SSL验证:

conn = pymysql.connect(
    # 其他参数不变
    ssl_mode="DISABLED"
)

3. 必查的配置细节

  • 确认主机地址是Planetscale提供的完整域名(比如xxx.us-east-1.psdb.cloud)
  • 用户名是数据库专属的用户名,不是你的Planetscale账号邮箱
  • 密码如果过期,去Planetscale控制台重新生成一个
  • 检查你的IP是否在Planetscale的访问白名单里,或者开启了「允许所有连接」选项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:27:45