无法使用Python的MySQLdb连接到localhost

l2osamch  于 2023-05-05  发布在  Mysql
关注(0)|答案(3)|浏览(134)

当我运行以下脚本时:

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模块为它指定正确的位置。

eimct9ow

eimct9ow1#

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

5cg8jx4n

5cg8jx4n2#

如果您mysql套接字没有放在/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

iecba09b

iecba09b3#

你的mysql安装可能把套接字放在别的地方。你可以在你的mysql conf文件中配置它。
你可能想看看这篇类似的文章:Installing mysql on leopard: "Can't connect to local MySQL server through socket"

相关问题