日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Django執行python?manage.py?makemigrations報錯的解決方案分享_python

作者:一個甜甜的大橙子 ? 更新時間: 2022-10-28 編程語言

1.環境

mysql 8.0

Django 3.2

pycharm 2021.11

2. (No changes detected)及解決

2.1 問題情景

# 遷移數據庫
python manage.py makemigrations 
python manage.py migrate

報錯

RuntimeWarning: Got an error checking a consistent migration history performed
for database connection 'default': (2059, <NULL>)
warnings.warn
?(No changes detected)

2.2 原因分析

MySQL 8.x加密方式:caching_sha2_password
MySQL 5.x加密方式為:mysql_native_password
所以要改成mysql_native_password

2.3 修改方式

由cmd進入命令行

登錄到mysql: mysql -u username -p password

參數說明:[-u]后面接的是登錄數據庫的賬號,[-p]后面是密碼

如果無法登錄,可能的原因是環境變量中PATH變量沒有加入MySQL的目錄,可以添加環境變量或在開始菜單中找到MySQL 8.0 Command Line Client進行登錄(這種方式打開后直接輸入密碼即可)。

查看你的賬號加密方式

use mysql                         
select user,plugin from user
mysql> use mysql
Database changed
mysql> select user,plugin from user;
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| cyk              | caching_sha2_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | caching_sha2_password |
+------------------+-----------------------+

輸入下面的指令進行修改

mysql> alter user '用戶名'@'localhost' identified with mysql_native_password by '你的密碼';

再次查看

mysql> select user,plugin from user;
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| cyk              | caching_sha2_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | mysql_native_password |
+------------------+-----------------------+

3. (2026, ‘SSL connection error:unknown error number‘) 及解決

3.1 問題情景

# 遷移數據庫
python manage.py makemigrations 
python manage.py migrate

報錯
Windows下django.db.utils.OperationalError: (2026, ‘SSL connection error: unknown error number‘)

3.2 原因分析

較高版本的mysql的ssl默認是開啟的

3.3 解決方案

關閉ssl

登錄mysql之后,輸入該命令:

mysql> SHOW VARIABLES LIKE '%ssl%';

修改配置文件my.ini(可能要通過屬性修改權限,否則無法修改成功)

# 路徑:C:\ProgramData\MySQL\MySQL Server 8.0
[mysqld]
skip_ssl  # 忽略ssl

重啟mysql服務重新執行命令

mysql> SHOW VARIABLES LIKE '%ssl%';

總結

原文鏈接:https://blog.csdn.net/chengyikang20/article/details/124776527

欄目分類
最近更新