2010-07-21 88 views
7

我試圖在過去只使用過sqlite之後使用mysql。通過Python訪問XAMPP mysql

我已經在linux(ubuntu)上安裝了XAMPP,並且已經啓動了mysql並運行正常(看起來像使用phpMyadmin atleast)。但是,我無法使MySQLdb(python lib)正常工作{使用apt進行安裝}。 確切的說:

>>> import MySQLdb 
>>> db = MySQLdb.connect(host="localhost",db="opfine") 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
    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) 
OperationalError: (2002, "Can't connect to local MySQL server through socket '/var 
/run/mysqld/mysqld.sock' (2)") 

我猜:

Can't connect to local MySQL server through socket '/var 
    /run/mysqld/mysqld.sock 

意味着它的期待某種本地安裝的(即不是內XAMPP),但我不能想出如何去了解這個改裝讓它與mysql的xampp風格一起工作。

非常感謝!

回答

5

爲了記錄(並感謝來自Igancio指針),我發現下面的作品(可怕的我沒有之前認爲這):使用

db=MySQLdb.connect(user="root",passwd="",db="my_db",unix_socket="/opt/lampp/var/mysql/mysql.sock") 
1

這意味着你沒有啓動MySQL服務器,或者它被配置爲不使用域套接字。

0

有同樣的問題,並期待您的SQL配置文件my.cnf。

# The following options will be passed to all MySQL clients 
[client] 
#password = your_password 
port  = 3306 
socket  = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock 

和使用套接字參數:

mysql://read:[email protected]/phonehome?unix_socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock 

在我的情況:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://read:[email protected]/phonehome?unix_socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'