pymysql.err.OperationalError: (1045, “Access denied for user ‘root‘@‘localhost‘ (using password: NO)
问题描述:
Django迁移mysql——执行命令python manage.py makemigrations api 时报错,报错信息:pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
E:\django_restful>python manage.py makemigrations api
Traceback (most recent call last):
File "C:\Python3.7.8\lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection
self.connect()
File "C:\Python3.7.8\lib\site-packages\django\db\backends\base\base.py", line 195, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Python3.7.8\lib\site-packages\django\db\backends\mysql\base.py", line 227, in get_new_connection
return Database.connect(**conn_params)
File "C:\Python3.7.8\lib\site-packages\pymysql\__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 327, in __init__
self.connect()
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 588, in connect
self._request_authentication()
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 863, in _request_authentication
auth_packet = self._process_auth(plugin_name, auth_packet)
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 936, in _process_auth
pkt = self._read_packet()
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 676, in _read_packet
packet.raise_for_error()
File "C:\Python3.7.8\lib\site-packages\pymysql\protocol.py", line 223, in raise_for_error
err.raise_mysql_exception(self._data)
File "C:\Python3.7.8\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "C:\Python3.7.8\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Python3.7.8\lib\site-packages\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python3.7.8\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Python3.7.8\lib\site-packages\django\core\management\base.py", line 364, in execute
output = self.handle(*args, **options)
File "C:\Python3.7.8\lib\site-packages\django\core\management\base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "C:\Python3.7.8\lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle
loader.check_consistent_history(connection)
File "C:\Python3.7.8\lib\site-packages\django\db\migrations\loader.py", line 283, in check_consistent_history
applied = recorder.applied_migrations()
File "C:\Python3.7.8\lib\site-packages\django\db\migrations\recorder.py", line 73, in applied_migrations
if self.has_table():
File "C:\Python3.7.8\lib\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 "C:\Python3.7.8\lib\site-packages\django\db\backends\base\base.py", line 256, in cursor
return self._cursor()
File "C:\Python3.7.8\lib\site-packages\django\db\backends\base\base.py", line 233, in _cursor
self.ensure_connection()
File "C:\Python3.7.8\lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection
self.connect()
File "C:\Python3.7.8\lib\site-packages\django\db\utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Python3.7.8\lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection
self.connect()
File "C:\Python3.7.8\lib\site-packages\django\db\backends\base\base.py", line 195, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Python3.7.8\lib\site-packages\django\db\backends\mysql\base.py", line 227, in get_new_connection
return Database.connect(**conn_params)
File "C:\Python3.7.8\lib\site-packages\pymysql\__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 327, in __init__
self.connect()
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 588, in connect
self._request_authentication()
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 863, in _request_authentication
auth_packet = self._process_auth(plugin_name, auth_packet)
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 936, in _process_auth
pkt = self._read_packet()
File "C:\Python3.7.8\lib\site-packages\pymysql\connections.py", line 676, in _read_packet
packet.raise_for_error()
File "C:\Python3.7.8\lib\site-packages\pymysql\protocol.py", line 223, in raise_for_error
err.raise_mysql_exception(self._data)
File "C:\Python3.7.8\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception
raise errorclass(errno, errval)
django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
报错原因:连接数据库时密码password输入错误
解决办法:
确认一下连接数据库的密码是否正确,可能是在脚本settings.py中配置数据库时把数据库或者数据库的密码配置错了。找到settings.py脚本中的数据库连接配置,检查数据库连接配置和密码,修改为正确的密码后保存脚本。
重新运行命令,模型创建成功。