启动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( )