通过MySQLdb Python库在Ubuntu 10.10上默认访问XAMPP

2 投票
1 回答
2213 浏览
提问于 2025-04-16 07:23

我正在尝试搭建一个虚拟机来开发一个Django应用,操作系统是Ubuntu 10.10。我大部分的东西都已经安装好了,最后一个问题就是让MySQLdb能够和XAMPP自带的MySQL一起工作。

我该如何让MySQLdb默认使用XAMPP的MySQL呢?

我找到了一些信息:通过Python访问XAMPP的MySQL

我理解那里的问题,但解决方案对我来说不管用,因为Django在后台处理连接的创建。我也不想为了一个应用去改动Django。

我尝试用两种不同的方式修改My.cnf文件,但都没有成功,还是出现同样的错误。这个错误在这里列出:

Traceback (most recent call last):
  File "test-mysqldb.py", line 4, in <module>
    db = MySQLdb.connect( user="root", passwd="", db="faceless001" )
  File "/usr/lib/pymodules/python2.6/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 170, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

XAMPP安装在了:/opt/lampp/

我在寻找最简单的、正确的解决方案。如果你能分享一些背景信息,那也会很有帮助。

1 个回答

3

我不太明白你为什么不直接通过 sudo apt-get install mysql-server 来安装 MySQL,不过无论如何,你的问题的答案似乎是要配置 Django,让它使用指定的套接字,而不是默认的那个。

根据 settings.DATABASES 的文档,在 HOST 部分:

如果这个值以斜杠 ('/') 开头,并且你在使用 MySQL,那么 MySQL 会通过 Unix 套接字连接到指定的套接字。

所以,如果你把数据库的 HOST 设置为 "/opt/lampp/var/mysql/mysql.sock",它应该能找到相关的 MySQL 套接字。

撰写回答