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

标签 python mysql django ubuntu xampp

我正在尝试构建虚拟机来开发 Django 应用程序。操作系统是Ubuntu 10.10。我已经安装了大部分东西。最后一部分是让 MySQLdb 与 XAMPP 附带的 MySQL 实例一起使用。

如何让 MySQLdb 默认与 XAMPP MySQL 一起使用?

我发现了这个:Accessing a XAMPP mysql via Python

我理解那里的问题,但该解决方案对我不起作用,因为 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/

我正在为此寻找最简单、正确的解决方案。您可以分享的任何背景信息也会有所帮助。

最佳答案

我不明白为什么你不直接通过sudo apt-get install mysql-server安装MySQL ,但是您的问题的答案似乎是配置 Django 使用指定的套接字代替默认的套接字。

从文档到settings.DATABASES ,在 HOST 下:

If this value starts with a forward slash ('/') and you're using MySQL, MySQL will connect via a Unix socket to the specified socket.

因此,如果您将数据库的 HOST 设置设置为 "/opt/lampp/var/mysql/mysql.sock"它应该找到相关的 MySQL 套接字。

关于python - Ubuntu 10.10 上默认通过 MySQLdb Python 库访问 XAMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234316/

相关文章:

django - 如何同时使用 django_python3_ldap auth 和 django default auth

mysql - Django session 用户

python - 使用 python 3.x 时,如何从 "for"命令获取输出并将它们添加到列表或字符串中?

python - 在尝试插入之前在数据库中查找现有条目

mysql - 如何根据另一个表中相同值的行为从一个表中选择值?

mysql - 使用 mysqldump 格式化每行插入一个?

python - Django REST FileUpload 序列化程序返回 {'file' : None}

python - 当主线程运行无限循环时,为什么在不同线程中导入模块需要很长时间?

python - 无法让 flask 运行

mysql - SQL 选择比较可能为空的日期时间字段的行