Python无法连接freesqldatabase数据库但phpMyAdmin可正常连接
getaddrinfo failed报错本质是填写的数据库主机地址无法被本地DNS解析为有效IP,可按以下步骤排查修复:
- 替换代码中的占位符参数:你当前代码里
host='host'是示例占位符,需要替换为平台分配给你的实际数据库主机地址,同时确认user、password、database三个参数也替换为你注册后拿到的真实凭据,不要直接使用示例字符串。修改后的代码参考如下:
import mysql.connector # 替换尖括号内的内容为你拿到的实际凭据 cnx = mysql.connector.connect(user='<实际用户名>', password='<实际密码>', host='<平台分配的数据库主机地址>', database='<实际数据库名>', port='<平台分配的数据库端口>') try: cursor = cnx.cursor() cursor.execute(""" select * FROM USERS """) result = cursor.fetchall() print(result) finally: cnx.close()
- 检查远程访问权限:phpMyAdmin是平台内部提供的管理工具,走平台内部网络所以可以正常访问,但绝大多数免费数据库服务默认禁止外部公网IP直接连接。你需要登录数据库管理后台,在远程访问配置项中添加你本地设备的公网IP到白名单,才能通过本地Python脚本连接。
- 确认端口配置:不要默认填写3306端口,部分免费MySQL服务会分配非标准端口避免端口扫描,要以平台给出的实际端口为准。
- 排查本地网络问题:如果以上配置全部正确仍然报错,可以在本地命令行执行
ping 你的数据库主机地址,如果返回找不到主机的错误,说明要么主机地址填写错误,要么本地DNS解析异常,可以尝试将本地DNS改为公共DNS(如114.114.114.114)后重试。
内容的提问来源于stack exchange,提问作者kanwarprogrammer
相关产品推荐
相关产品推荐

