笔者有一台阿里云服务器,在服务器上安装了宝塔面板,通过宝塔安装了MySQL数据库。
想通过python连接远程数据库。
首先安装了pymysql模块,导入模块,填写参数后连接出错。
import pymysql
conndb=pymysql.Connect(
host="服务器IP地址",
user="数据库用户名",
password="数据库密码",
database="数据库名",
port=3306, #端口号,默认即3306
charset="utf8"
)
运行后连接出错:
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '你的阿里服务器IP地址' (timed out)")
首先,在阿里云服务器控制台查看了端口,确认打开了3306端口,但依然无法连接mysql
通过分析,发现宝塔内部还需要打开3306端口。宝塔安装防火墙管理工具
通过管理工具添加规则,放开3306端口,再运行程序,顺利连接mysql。