gpt4 book ai didi

python - 迁移时 Django MySQL 错误

转载 作者:行者123 更新时间:2023-11-29 02:55:11 25 4
gpt4 key购买 nike

我正在尝试按照 Django 网站上的“编写您的第一个 Django 应用程序”教程进行操作,但我停留在第 2 部分有关数据库的内容。

我正在运行 Ubuntu 14.04 和 Python 3.4。

我已经安装了 MySQL 和 Python MySQL 库,并在 MySQL 中创建了一个名为 testdb 的数据库,但是在尝试运行命令时

python3 manage.py migrate

我收到以下错误:

server1:~/Desktop/app/mysite$ python3 manage.py migrate
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/mysql/base.py", line 124, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 207, in execute
self.errorhandler(self, exc, value)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/connections.py", line 37, in defaulterrorhandler
raise errorvalue
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 192, in execute
r = self._query(query)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 355, in _query
rowcount = self._do_query(q)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 319, in _do_query
db.query(q)
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s' at line 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 393, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 444, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/migrate.py", line 93, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/executor.py", line 19, in __init__
self.loader = MigrationLoader(self.connection)
File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 47, in __init__
self.build_graph()
File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 182, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/recorder.py", line 59, in applied_migrations
self.ensure_schema()
File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/recorder.py", line 53, in ensure_schema
editor.create_model(self.Migration)
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/schema.py", line 289, in create_model
self.deferred_sql.extend(self._model_indexes_sql(model))
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/mysql/schema.py", line 55, in _model_indexes_sql
self.connection.cursor(), model._meta.db_table
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/mysql/introspection.py", line 142, in get_storage_engine
"WHERE table_name = %s", [table_name])
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.4/dist-packages/django/db/utils.py", line 97, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python3.4/dist-packages/django/utils/six.py", line 658, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/mysql/base.py", line 124, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 207, in execute
self.errorhandler(self, exc, value)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/connections.py", line 37, in defaulterrorhandler
raise errorvalue
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 192, in execute
r = self._query(query)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 355, in _query
rowcount = self._do_query(q)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/cursors.py", line 319, in _do_query
db.query(q)
django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s' at line 1")

我在 django 中的数据库设置如下所示

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testdb',
'USER': 'root',
'PASSWORD': 'xxxx',
'HOST': '127.0.0.1',
}
}

我对基础 django 项目模板所做的唯一更改是添加一个应用程序、一些 url 映射并更改数据库设置并将后端切换到 sqlite 工作正常。

任何解决这个问题的帮助都会很棒,谢谢。

编辑:这是我安装的应用程序、网址,我还没有任何模型。

设置.py

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)

项目 urls.py

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls'))
]

应用程序 urls.py

urlpatterns = [url(r'^$', views.index, name='index')]

最佳答案

问题似乎出在错误的 MySQL 连接器上。从 this post. 找到一个好的

不得不做一个

sudo apt-get install libmysqlclient-dev

然后

sudo pip3 install mysqlclient

关于python - 迁移时 Django MySQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31336423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com