如何更改在MAMP上运行的Django项目数据库名称?

时间:2014-01-24 16:34:18

标签: mysql django django-models mamp django-settings

所以,我有一个运行项目,它使用带有MAMP本地服务器的MySQL数据库,但是出于合规性问题,我需要更改数据库名称。所以我在MAMP中更改了它,我在settings.py中更改了它,如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'prototipodb',                      # Or path to database file if using sqlite3.
        'USER': 'palapa',                      # Not used with sqlite3.
        'PASSWORD': 'palapa',                  # Not used with sqlite3.
        'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',  # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.
    }
}

我认为通过这些更改,一切都会顺利运行,但我的服务器上出现以下错误:

  

由>开始的线程中未处理的异常   Traceback(最近一次调用最后一次):     在inner_run中输入文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/core/management/commands/runserver.py”,第91行       self.validate(display_num_errors =真)     文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/core/management/base.py”,第266行,在验证中       num_errors = get_validation_errors(s,app)     在get_validation_errors中输入文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/core/management/validation.py”,第103行       connection.validation.validate_field(e,opts,f)     在validate_field中输入文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/db/backends/mysql/validation.py”,第14行       db_version = self.connection.get_server_version()     get_server_version中的文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/db/backends/mysql/base.py”,第415行       self.cursor()。close()方法     文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/db/backends/init.py”,第306行,在游标中       cursor = self.make_debug_cursor(self._cursor())     在_cursor中输入文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/db/backends/mysql/base.py”,第387行       self.connection = Database.connect(** kwargs)     在Connect中输入文件“build / bdist.macosx-10.9-intel / egg / MySQLdb / init .py”,第81行     在 init 中输入文件“build / bdist.macosx-10.9-intel / egg / MySQLdb / connections.py”,第193行   _mysql_exceptions.OperationalError:(1049,“未知数据库'prototipodb'”)

如果你能解决这个问题,我将不胜感激。我一直在考虑的事情之一是运行syncbd命令来重建连接,但如果有更好的解决方案,我很乐意考虑它。

1 个答案:

答案 0 :(得分:1)

我刚刚在我的Mac上做了这个,它运行正常。我复制了数据库并更改了settings.py中的名称。然后我让我的用户访问新的数据库。

您是否授予用户palapa访问新数据库的权限?

你是否有特权?

你重启了Django服务器吗?