Python连接phpMyAdmin中MariaDB数据库报错10061求解决
问题
我希望通过Python连接托管在phpMyAdmin上的数据库,从phpMyAdmin的"variable"板块中查到主机名为atexo-sourcing-prod-01.local-trust.com。使用登录phpMyAdmin的相同账号密码,运行以下Python代码尝试连接:
try: conn = mariadb.connect( user="mylogin", password="my_password", host="atexo-sourcing-prod-01.local-trust.com", port=3306, database="atexo_prod_sourcing_db") except mariadb.Error as e: print(f"Error connecting to MariaDB Platform: {e}")
出现错误提示:
Can't connect to server on 'atexo-sourcing-prod-01.local-trust.com' (10061)
我认为不是主机名的问题(输入随机名称时会出现另一种错误),请问有什么解决办法?
解决办法
- 测试网络与端口连通性:在本地终端执行
ping atexo-sourcing-prod-01.local-trust.com确认主机可访问,再用telnet atexo-sourcing-prod-01.local-trust.com 3306或nc -zv atexo-sourcing-prod-01.local-trust.com 3306测试3306端口是否对外开放。如果端口不通,说明服务器或本地防火墙拦截了请求,需联系运维调整防火墙规则。 - 检查数据库用户的远程访问权限:phpMyAdmin的登录权限不等于远程连接权限。登录phpMyAdmin后进入用户管理页面,查看
mylogin用户的主机字段,若为localhost或127.0.0.1,说明该账号仅允许本地登录,需将主机权限修改为%(允许所有IP)或你的本地IP地址。 - 验证主机名解析准确性:执行
nslookup atexo-sourcing-prod-01.local-trust.com或dig atexo-sourcing-prod-01.local-trust.com,确认解析出的IP地址是否为数据库服务器真实IP,排除DNS解析错误可能。 - 确认MariaDB服务状态:联系服务器管理员检查MariaDB服务是否正常运行,以及服务是否监听3306端口(可在服务器上执行
netstat -tulpn | grep 3306查看监听状态)。
内容的提问来源于stack exchange,提问作者Fitz
相关产品推荐
相关产品推荐

