当前位置: 首页 > 工具软件 > django-mysql > 使用案例 >

启动Django-Mysql数据库服务出现的问题

赵献
2023-12-01

启动Django-Mysql数据库服务出现的问题

问题一:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/utils/autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run
    self.check_migrations()
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/core/management/base.py", line 453, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/migrations/executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/migrations/loader.py", line 49, in __init__
    self.build_graph()
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/migrations/loader.py", line 212, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 73, in applied_migrations
    if self.has_table():
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 56, in has_table
    return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor())
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/base/base.py", line 256, in cursor
    return self._cursor()
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/base/base.py", line 233, in _cursor
    self.ensure_connection()
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/base/base.py", line 217, in ensure_connection
    self.connect()
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/base/base.py", line 197, in connect
    self.init_connection_state()
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 231, in init_connection_state
    if self.features.is_sql_auto_is_null_enabled:
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/utils/functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/mysql/features.py", line 82, in is_sql_auto_is_null_enabled
    cursor.execute('SELECT @@SQL_AUTO_IS_NULL')
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/utils.py", line 103, in execute
    sql = self.db.ops.last_executed_query(self.cursor, sql, params)
  File "/Users/zhongdengjia/.local/share/virtualenvs/DjangoData-Mod7VZSH/lib/python3.8/site-packages/django/db/backends/mysql/operations.py", line 146, in last_executed_query
    query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
  • 解决办法:错误追踪到operations.py 将decode改成encode

问题二

NameError: name '_mysql' is not defined
  • 解决Django执行manage.py 提示 NameError: name ‘_mysql’ is not defined 问题
  • 原因是:Mysqldb 不兼容 python3.5 以后的版本
  • 安装pymysql:pip install pymysql
  • 打开项目在setting.py的init.py,或直接在当前py文件最开头添加如下:
import pymysql 
pymysql.install_as_MySQLdb()
 类似资料: