无法使用 Python 的 MySQLdb 连接到本地主机

问题描述 投票:0回答:3

当我运行以下脚本时:

import MySQLdb

conn = MySQLdb.connect (host = 'localhost',
   user = 'erin',
   passwd = 'erin',
          db = 'sec')

我得到错误:

  File "/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")

该目录中没有名为 mysql.sock 的文件,但我不知道什么是套接字或如何使用 MySQLdb 模块为其指定正确的位置。

python mysql mysql-python
3个回答
44
投票

我已经设法通过将我的主机设置为“127.0.0.1”而不是“localhost”来解决这个问题。


27
投票

如果你的mysql socket没有放在/tmp/mysql.sock中,可以用

指定
conn = MySQLdb.connect (unix_socket = 'path_to_your_socket', host = 'localhost', user = 'erin', passwd = 'erin', db = 'sec')

edit:对于 macosx 上的 mamp,mysql 套接字路径应该类似于

/Applications/MAMP/tmp/mysql/mysql.sock


5
投票

您的 mysql 安装可能将套接字放在其他地方。你可以在你的 mysql conf 文件中配置它。

您可能想看看这个类似的帖子:在 leopard 上安装 mysql:“无法通过套接字连接到本地 MySQL 服务器”

© www.soinside.com 2019 - 2024. All rights reserved.