簡體   English   中英

在Django項目上運行syncdb無法正常工作:無法創建/寫入文件

[英]Running syncdb on Django project not working: Can't create/write to file

當我跑步時:

$ 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的說明,但這些說明與雪豹略有不同。 實際執行卸載和全新安裝后,此問題就消失了。

問題是如何調試問題,正如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后端將無法解決任何問題。)

這可能會有所幫助:

agos @ server:〜$ perror 2
操作系統錯誤代碼2:無此類文件或目錄

您的MySQL是否配置正確? 嘗試自己通過mysql命令查詢它。
另外,如luc在評論中所建議,請嘗試使用sqlite。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM