2009-08-19 45 views
3

我想配置一個Django應用程序來使用mysql。配置Django使用遠程mysql服務器?

我想使用我的網絡中可用的mysql服務器,並且不想安裝本地副本。

但是,當我試圖安裝mysqldb它需要mysql_config從Mysql!

如果我想在另一臺機器上使用mysql服務器,該怎麼辦?

sh: mysql_config: command not found 
Traceback (most recent call last): 
    File "setup.py", line 15, in <module> 
    metadata, options = get_config() 
    File "~/Dev/MySQL-python-1.2.3c1/setup_posix.py", line 43, in get_config 
    libs = mysql_config("libs_r") 
    File "~/Dev/MySQL-python-1.2.3c1/setup_posix.py", line 24, in mysql_config 
    raise EnvironmentError("%s not found" % (mysql_config.path,)) 
EnvironmentError: mysql_config not found 

嘗試下載MySQL文件並指向「mysql_config」並構建mysqldb。

但是,當我試圖導入My​​SQLdb的獲取:

>>> import MySQLdb 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/MySQLdb/__init__.py", line 19, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 7, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 6, in __bootstrap__ 
ImportError: dlopen(/tmp/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so, 2): Library not loaded: /usr/local/mysql/lib/libmysqlclient_r.15.dylib 
    Referenced from: /tmp/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so 
    Reason: image not found 

的錯誤是什麼任何暗示?

謝謝

+0

忘了提及平臺。我在Mac OSX下運行。 – lud0h 2009-08-19 05:28:58

回答

3

我終於在沒有在我的MacOSX中安裝MySQL服務器的情況下編譯MySQLdb。

步驟:

  1. 下載MySQL的合適包(焦油)未安裝版本,並從MySQL Python bindings
  2. 解壓解壓
  3. 下載MySQLdb的包裝MySQLdb的
  4. 編輯site.cfg指向mysql_config成您已經下載的目錄
  5. 按照MySQLdb中的說明(基本上安裝&安裝)
  6. 將您的'mysql/lib'文件夾中的libmysqlclient_r.15.dylib文件複製到/ usr/local/mysql/lib(假設您選擇了線程安全版本)
  7. 現在您已準備好使用MySQLdb與任何MySQL服務器
  8. 您可以使用以下方式測試安裝:python >>> import MySQLdb
+1

對於遇到這種事情的人來說,另一個注意事項是:libmysqlclient_r.15中的數字「15」。dylib會隨着你安裝的MySQL版本而改變,所以如果你是從源代碼構建的,確保你安裝了正確的MySQL版本(只是第7版「任何MySQL服務器」部分的補充)。我意外地遇到了一個問題,我建立了一個MySQLdb .egg,它正在尋找libmysqlclient_r.15.dylib,但我的系統只有libmysqlclient_r.16.dylib(並且不,如果您只是重命名它,它不起作用)。好問題...幫我找出了MySQLdb和pyanttasks的bug。謝謝! – 2010-01-27 00:51:23

1

安裝預編譯版本的MySQLdb驅動程序。大多數Linux發行版都在其存儲庫中提供它 - 例如,在Debian和Ubuntu中,它的名稱爲python-mysqldb

此外,由於這不涉及編程,最好將其移至超級用戶。

+1

還是serverfault?這更像是一個服務器配置問題 – 2009-08-19 05:22:45

+0

基於提示試圖找到一個預編譯版本,但找不到一個用於Python 2.5 [http://wiki.python.org/moin/MacPython/Packages] – lud0h 2009-08-19 05:36:24

2

您需要在運行Django的機器上安裝mysql的客戶端庫,以便它可以連接到遠程MySQL服務器。簡單的libmysqlclient和python的mysql驅動程序。更多細節取決於您正在運行的平臺。

+0

Thx的信息,是否有可能獲得MySQL客戶端庫?我看了一下MySQL網站,發現只有安裝程序包? – lud0h 2009-08-19 05:55:30