2010-01-18 40 views
2

當我運行:在Django項目運行執行syncdb不工作:無法創建/寫入文件

$ python manage.py syncdb 

我得到以下輸出:

Creating table auth_permission 
Traceback (most recent call last): 
    File "manage.py", line 11, in <module> 
    execute_manager(settings) 
    File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager 
    utility.execute() 
    File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 303, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 222, in execute 
    output = self.handle(*args, **options) 
    File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 351, in handle 
    return self.handle_noargs(**options) 
    File "/Library/Python/2.6/site-packages/django/core/management/commands/syncdb.py", line 78, in handle_noargs 
cursor.execute(statement) 
    File "/Library/Python/2.6/site-packages/django/db/backends/util.py", line 19, in execute 
    return self.cursor.execute(sql, params) 
    File "/Library/Python/2.6/site-packages/django/db/backends/mysql/base.py", line 84, in execute 
    return self.cursor.execute(query, args) 
    File "build/bdist.macosx-10.6-universal/egg/MySQLdb/cursors.py", line 173, in execute 
    File "build/bdist.macosx-10.6-universal/egg/MySQLdb/connections.py", line 36, in defaulterrorhandler 
_mysql_exceptions.InternalError: (1, "Can't create/write to file '/usr/local/mysql/data/wzhere/auth_permission.MYI' (Errcode: 2)") 

如何調試任何想法?我已經給了數據庫用戶所有它應該需要的權限。不確定MySQL在這裏玩什麼。

更新:這裏的問題結束了,我已經安裝了MySQL多次(第32位,然後64位,當我意識到我應該這樣做),雖然我跟一些說明如何取消 - 安裝MySQL,Snow Leopard的說明略有不同。一旦我真的做了卸載和乾淨安裝,這個問題就消失了。

+1

是否工作正常使用SQLite? – luc 2010-01-18 08:53:51

回答

4

問題是如何調試問題,正如Agos已經指出的,Errno 2是'沒有這樣的文件或目錄'。你可能想看看在MySQL的數據目錄和檢查目錄實際上是有,有正確的權限

shell> cd /usr/local/mysql/data/ 
shell> ls -ld * 
drwx------ 17 geert admin   578 Oct 1 19:33 someabstract 

上面應該給你的目錄(這是MySQL數據庫)的名單和他們的權限。檢查是否在'wzhere'目錄.. 這是一個有點奇怪的錯誤信息,你應該說。

(嘗試其他的Django DB後端不會解決在這種情況下任何東西。)

2

這可能幫助:

AGOS @服務器:〜$ PERROR 2
操作系統錯誤代碼2:沒有這樣的文件或目錄

是你的MySQL配置是否正確?嘗試通過mysql命令自行查詢。
此外,正如在評論中提出的luc,嘗試與sqlite。

相關問題