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

Posted

技术标签:

【中文标题】如何更改在 MAMP 上运行的 Django 项目数据库名称?【英文标题】:How can I change Django's project database name running on MAMP? 【发布时间】:2014-02-15 17:54:37 【问题描述】:

所以,我有一个正在运行的项目,它使用带有 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.
    

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

由 > 启动的线程中未处理的异常 回溯(最近一次通话最后): 文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/core/management/commands/runserver.py”,第 91 行,inner_run self.validate(display_num_errors=True) 文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/core/management/base.py”,第266行,验证 num_errors = get_validation_errors(s, app) 文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/core/management/validation.py”,第 103 行,在 get_validation_errors connection.validation.validate_field(e, opts, f) 文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/db/backends/mysql/validation.py”,第 14 行,在 validate_field db_version = self.connection.get_server_version() 文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/db/backends/mysql/base.py”,第 415 行,在 get_server_version self.cursor().close() 光标中的文件“/Users/palapa2/projects/prototipo_tesis/venv/lib/python2.7/site-packages/django/db/backends/init.py”,第 306 行 光标 = 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, "Unknown database 'prototipodb'")

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

【问题讨论】:

您是否将 'NAME': 'prototipodb', 更改为正确的数据库名称,因为它看起来不像您所做的那样。 【参考方案1】:

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

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

你刷新权限了吗?

您是否重新启动了 Django 服务器?

【讨论】:

我正在重命名 MAMP 仪表板上的数据库。现在我复制了它,它工作得很好!谢谢!!!!

以上是关于如何更改在 MAMP 上运行的 Django 项目数据库名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MAMP 安装上从终端运行 mysql 命令?

无法在 Mac 上更改 mamp 端口

更改了 phpMyAdmin 的 root 密码,现在我无法访问任何 MAMP

虚拟主机无法在 MAMP 上运行

如何在一台服务器上运行两个 django 项目

在 MAMP 上使用虚拟主机映射 Laravel 公用文件夹时遇到问题