如何通过Python连接安装在非默认目录的MySQL?
解决Python连接自定义目录MySQL服务的问题
首先明确:你使用的~/home/sama/myproject/build/build-debug/bin/mysql是MySQL客户端程序,Python的mysql.connector连接的是MySQL服务端,和客户端程序的安装目录没有直接关联。连接失败通常是服务端配置、连接参数或权限问题,以下是具体解决步骤:
确认服务端监听端口
先验证MySQL服务确实在3305端口提供TCP/IP服务:ss -tulpn | grep 3305或者用你能连接的客户端执行SQL命令确认端口:
SHOW GLOBAL VARIABLES LIKE 'port';修正连接参数
你命令行使用-p说明需要密码,但Python代码中password=""为空,这是常见错误。把你命令行输入的密码填入参数:import mysql.connector db = mysql.connector.connect( host="127.0.0.1", user="root", password="你的实际密码", port=3305 ) print(db)检查socket连接(如果服务端未开启TCP监听)
有些自定义编译的MySQL可能默认只开启socket连接,此时需要指定socket路径:- 用客户端执行SQL获取socket路径:
SHOW GLOBAL VARIABLES LIKE 'socket'; - Python连接时添加
socket参数(可去掉port和host,或保留):import mysql.connector db = mysql.connector.connect( user="root", password="你的实际密码", socket="/path/to/your/mysql.sock" ) print(db)
- 用客户端执行SQL获取socket路径:
验证用户连接权限
确认root用户允许从127.0.0.1连接:- 用客户端登录后执行:
SELECT user, host FROM mysql.user WHERE user='root'; - 如果没有
127.0.0.1或%(允许所有IP)的记录,执行授权命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;
- 用客户端登录后执行:
重装mysql.connector(版本兼容问题)
若以上步骤无效,可能是驱动版本不兼容,尝试重装:pip uninstall -y mysql-connector-python pip install mysql-connector-python
内容的提问来源于stack exchange,提问作者sama
相关产品推荐
相关产品推荐

