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

虚拟主机中Python连接MySQL报1045、1227权限错误问题求助

解决方案

方案1:使用Socket连接(最快生效,无需修改数据库权限)

MySQL默认支持Unix Socket本地连接,和你终端sudo mysql走的连接方式一致,不需要走TCP/IP网络,也不会触发IP访问权限校验,按以下步骤修改即可:

  1. 首先在终端执行sudo mysql登录数据库后,执行以下命令查询Socket文件路径:
SELECT @@socket;

返回结果一般是/var/run/mysqld/mysqld.sock这类路径。
2. 修改Python连接代码,替换原来的连接配置:

database = mysql.connect(
    unix_socket = '/var/run/mysqld/mysqld.sock', # 替换为上一步查到的实际路径
    user = 'ilyacherne',
    passwd = 'CENSORED',
    database = 'ilyacherne'
)

如果还是报错,可以把unix_socket参数换成host='localhost',部分MySQL驱动会自动识别localhost走Socket连接。

方案2:开通TCP/IP连接权限

如果你必须用IP地址连接,需要先确认你登录的是高权限账号:

  1. 终端执行sudo mysql登录,此时默认登录的是root@localhost账号,执行以下命令给ilyacherne用户开通对应IP的访问权限:
-- 允许ilyacherne从77.222.61.25登录,替换密码为你实际的数据库密码
GRANT ALL PRIVILEGES ON ilyacherne.* TO 'ilyacherne'@'77.222.61.25' IDENTIFIED BY '你的数据库密码';
FLUSH PRIVILEGES;
  1. 如果执行上述命令还是报权限不足,说明主机商限制了你的root账号权限,直接联系主机商帮你开通ilyacherne用户从77.222.61.25访问数据库的权限即可。

额外排查点

  • 确认你终端执行mysql -u ilyacherne -p输入密码后是否能正常登录,如果不能登录说明用户本身的密码配置错误,需要主机商协助重置密码或者调整用户权限。
  • 检查数据库是否开启了远程访问限制,部分主机商默认禁止MySQL绑定公网IP,只能本地访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:39:02