2012-11-11 79 views
2

我敢肯定,我跟着本教程的程序準確,但我仍然得到錯誤=/Django的書第5章數據庫引擎設置

目前,我的settings.py DATABASES看起來像這樣

DATABASES = { 
    'default': { 
     'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'mysql','sqlite3' or 'oracle'.  
     'NAME': 'mydb',  # Or path to database file if using sqlite3. 
     'USER': 'user',  # Not used with sqlite3. 
     'PASSWORD': 'pwd', # Not used with sqlite3. 
     'HOST': '',   # Set to empty string for localhost. Not used with sqlite3. 
     'PORT': '',   # Set to empty string for default. Not used with sqlite3. 
    } 
} 

本教程告訴我在ENGINE中有'mysql'。然而,當我嘗試使用命令「蟒蛇manage.py殼」我得到這個錯誤

django.core.exceptions.ImproperlyConfigured: 'mysql' isn't an available database backend. 
Try using django.db.backends.mysql instead. 
Error was: No module named mysql.base 

這就是爲什麼我有django.db.backends.mysql旁邊ENGINE

這些設置後,該教程告訴我這些命令

'python manage.py shell'  <--- works fine 

from django.db import connection  <--- works fine 

cursor = connection.cursor()   <--- uh oh 

鍵入運行光標命令後,我得到這個錯誤

http://pastebin.com/8MtYq7rg

不是真的知道這意味着什麼=/

當我嘗試使用python manage.py runserver運行我的服務器時,出現此錯誤。不知道這是什麼意思,但最後的錯誤似乎是相同的。

http://pastebin.com/91U3dz73

我也看了在線使用python manage.py dbshell來測試我的數據庫訪問,這是我得到的消息。

Error: You appear not to have the 'mysql' program installed or on your path.

我張貼在Reddit上這個問題,看看我是否能得到任何額外的幫助。我希望這些信息能爲這個問題提供額外的幫助。

  1. 類型的MySQL在外殼和看到的結果
  2. 後如何安裝了MySQL。你是否已經爲Django製作了一個桌面來使用它?
  3. 您正在使用什麼操作系統?

    1. 當我在shell中輸入MySQL時沒有任何反應。當我輸入命令'python manage.py shell',然後輸入MySQL。我收到一個錯誤「NameError:name'MySQL'未定義」。當我在終端上鍵入的MySQL,它說:MySQL的:沒有發現

    2. 命令我該如何安裝MySQL的是,我下載的文件,然後提取其中的tar文件的位置。接下來,我將提取的文件夾放到/ home/Development目錄中。我所有的代碼存儲在/ home /開發/ djcode/mysite的/ mysite的/

    3. 我使用Ubuntu

** * ***UPDATE*UPDATE* ** * ** * ** * ** * **

所以我相信我是由於這樣的事實,我沒有MySQL的讓我的錯誤安裝/下載。我所擁有的是MySQL-Python,它不是同一件事......但無論如何,我下載/安裝了MySQL,然後用'python manage.py shell'運行python shell,然後從'django.db import connection'運行,然後'cursor = connection .cursor()」

不過,我得到以下錯誤

OperationalError:(1045, 「訪問被拒絕的用戶 '布拉德福德' @ 'localhost' 的(使用密碼:YES)」)

不肯定該做什麼在這一點=/

+0

你似乎沒有真正的MySQL本地運行。 –

+0

我發佈我的問題在reddit哈哈爲了得到更多的幫助。我想知道這是否會爲這個問題提供更多的信息。 在shell中輸入MySQL並查看結果 發佈您如何安裝MySQL。你是否已經爲Django製作了一個桌面來使用它? 你在使用什麼操作系統? – Liondancer

+0

上次錯誤「拒絕訪問」,因爲您在設置文件中使用了錯誤的用戶名或密碼。 –

回答

3

我猜你缺少Python MySQLDB

+0

我敢肯定,我有下載 – Liondancer

+0

要測試進入一個Python外殼和類型: 進口_mysql 你不應該看到一個錯誤。 –

+0

>>> import_MySQL 回溯(最近最後一次通話): 文件 「」,1號線,在 NameError:名字 'import_MySQL' 沒有定義 =/ – Liondancer

1

看這裏https://docs.djangoproject.com/en/dev/ref/settings/#engine

您應該使用

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     .... 
    } 
} 
+0

是的,自從終端告訴我哈哈以來,我一直在使用該代碼,但在運行服務器或遊標命令時仍然出現錯誤=/ – Liondancer

+0

DATABASES之前的$是什麼? –

+0

這是我第一次發佈在stackoverflow上,我試圖在我的文章中添加代碼,並告訴我在我的代碼之前有一個$哈哈我想我做錯了 – Liondancer

0

這是針對您的更新。這是一個MySQL錯誤。 MySQL對用戶如何以及在何處訪問數據庫設置了限制。您可以找到文檔here,但是tl; dr是您需要確保用戶存在,密碼正確,並且您從正確的域連接。