簡體   English   中英

django.db.utils.OperationalError: (2013, “在‘握手:讀取初始通信包’時失去與 MySQL 服務器的連接,系統錯誤:0”)

[英]django.db.utils.OperationalError: (2013, "Lost connection to MySQL server at 'handshake: reading inital communication packet', system error: 0")

我正在 django 中開發一個應用程序以將其推送到 Heroku,並且在嘗試將 mysql 中的數據庫遷移到 heroku 時,我 pip 安裝了 mysql-python 並且當我嘗試運行服務器時,出現此錯誤:

django.db.utils.OperationalError: (2013, “在‘握手:讀取初始通信包’時失去與 MySQL 服務器的連接,系統錯誤:0”)

(我有我的虛擬環境)。
奇怪的是,即使我已經安裝了該軟件包,該軟件包也安裝了 python。
我發現它卸載了 django 和我之前安裝的幾個模塊,甚至是 pip!

我重新安裝了模塊,但現在當我運行服務器時,我收到了上面的錯誤。
如果我從另一個應用程序目錄運行服務器,則數據庫運行良好。
它可能與我在目錄中安裝的東西有關,並且可能顯然被奇怪的包覆蓋了?

這是我的點子凍結結果:

certifi==2019.6.16
dj-database-url==0.5.0
Django==2.2.3
django-heroku==0.3.1
gunicorn==19.9.0
mysql-connector-python==8.0.16
mysqlclient==1.4.2.post1
protobuf==3.6.0
psycopg2==2.8.3
PyMySQL==0.9.3
python-decouple==3.1
pytz==2019.1
six==1.12.0
sqlparse==0.3.0
whitenoise==4.1.2
wincertstore==0.2

我現在將刪除該項目並嘗試重新構建它,只要我明白,什么搞砸了項目是我嘗試安裝mysql-python。

Collecting mysql-python   Using cached https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip Building wheels for collected packages: mysql-python   Building wheel for mysql-python (setup.py) ... error   ERROR: Complete output from command 'C:\Applicazioni_Tommaso\Anaconda3\envs\met3\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\Tommaso\\AppData\\Local\\Temp\\pip-install-yr8h0ec1\\mysql-python\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\Tommaso\AppData\Local\Temp\pip-wheel-ywwxryy8' --python-tag cp37:   ERROR: running bdist_wheel   running build   running build_py  creating build   creating build\lib.win-amd64-3.7   copying
_mysql_exceptions.py -> build\lib.win-amd64-3.7   creating build\lib.win-amd64-3.7\MySQLdb   copying MySQLdb\__init__.py -> build\lib.win-amd64-3.7\MySQLdb   copying MySQLdb\converters.py -> build\lib.win-amd64-3.7\MySQLdb   copying MySQLdb\connections.py -> build\lib.win-amd64-3.7\MySQLdb   copying MySQLdb\cursors.py -> build\lib.win-amd64-3.7\MySQLdb   copying MySQLdb\release.py -> build\lib.win-amd64-3.7\MySQLdb   copying MySQLdb\times.py -> build\lib.win-amd64-3.7\MySQLdb   creating build\lib.win-amd64-3.7\MySQLdb\constants   copying MySQLdb\constants\__init__.py -> build\lib.win-amd64-3.7\MySQLdb\constants   copying MySQLdb\constants\CR.py -> build\lib.win-amd64-3.7\MySQLdb\constants   copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-3.7\MySQLdb\constants   copying MySQLdb\constants\ER.py -> build\lib.win-amd64-3.7\MySQLdb\constants   copying MySQLdb\constants\FLAG.py -> build\lib.win-amd64-3.7\MySQLdb\constants   copying MySQLdb\constants\REFRESH.py -> build\lib.win-amd64-3.7\MySQLdb\constants   copying MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-3.7\MySQLdb\constants   running build_ext   building '_mysql' extension   creating build\temp.win-amd64-3.7   creating build\temp.win-amd64-3.7\Release   C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,2,5,'final',1)
-D__version__=1.2.5 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" -IC:\Applicazioni_Tommaso\Anaconda3\envs\met3\include -IC:\Applicazioni_Tommaso\Anaconda3\envs\met3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\cppwinrt" /Tc_mysql.c /Fobuild\temp.win-amd64-3.7\Release\_mysql.obj /Zl   _mysql.c  
_mysql.c(42): fatal error C1083: Non è possibile aprire il file inclusione: 'config-win.h': No such file or directory   error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2   ----------------------------------------   ERROR: Failed building wheel for mysql-python   Running setup.py clean for mysql-python Failed to build mysql-python Installing collected packages: mysql-python   Running setup.py install for mysql-python ... error
    ERROR: Complete output from command 'C:\Applicazioni_Tommaso\Anaconda3\envs\met3\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\Tommaso\\AppData\\Local\\Temp\\pip-install-yr8h0ec1\\mysql-python\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Tommaso\AppData\Local\Temp\pip-record-dwqliwhp\install-record.txt'
--single-version-externally-managed --compile:
    ERROR: running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.7
    copying _mysql_exceptions.py -> build\lib.win-amd64-3.7
    creating build\lib.win-amd64-3.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win-amd64-3.7\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win-amd64-3.7\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win-amd64-3.7\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win-amd64-3.7\MySQLdb
    copying MySQLdb\release.py -> build\lib.win-amd64-3.7\MySQLdb
    copying MySQLdb\times.py -> build\lib.win-amd64-3.7\MySQLdb
    creating build\lib.win-amd64-3.7\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win-amd64-3.7\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win-amd64-3.7\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-3.7\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win-amd64-3.7\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win-amd64-3.7\MySQLdb\constants
    copying MySQLdb\constants\REFRESH.py -> build\lib.win-amd64-3.7\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-3.7\MySQLdb\constants
    running build_ext
    building '_mysql' extension
    creating build\temp.win-amd64-3.7
    creating build\temp.win-amd64-3.7\Release
    C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,2,5,'final',1)
-D__version__=1.2.5 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" -IC:\Applicazioni_Tommaso\Anaconda3\envs\met3\include -IC:\Applicazioni_Tommaso\Anaconda3\envs\met3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\cppwinrt" /Tc_mysql.c /Fobuild\temp.win-amd64-3.7\Release\_mysql.obj /Zl
    _mysql.c
    _mysql.c(42): fatal error C1083: Non è possibile aprire il file inclusione: 'config-win.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
    ---------------------------------------- ERROR: Command "'C:\Applicazioni_Tommaso\Anaconda3\envs\met3\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\Tommaso\\AppData\\Local\\Temp\\pip-install-yr8h0ec1\\mysql-python\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Tommaso\AppData\Local\Temp\pip-record-dwqliwhp\install-record.txt'
--single-version-externally-managed --compile" failed with error code 1 in C:\Users\Tommaso\AppData\Local\Temp\pip-install-yr8h0ec1\mysql-python\

更新

壞命令,即

pip 安裝 mysql-python

已將我的 python 默認路徑設置為 2.7 而不是 3.7。

要修復它,我必須(Windows 10):

Cortana > 搜索欄 > 輸入“env” > 更改系統的環境變量 > 環境變量 > 選擇“路徑” > 更改 >

創建並移動到頂部(或簡單地移動到頂部)您安裝 python 3.7 的路徑。

保存 > 關閉 anaconda。 這使得 pyhton 及其模塊再次工作。 我不得不重新安裝 pip,現在它又可以工作了。 但是當我的虛擬環境打開時,我在 mysql 中連接的數據庫有問題。

這可能是Firewall問題。 確保正在運行MySQL的端口已打開,以允許來自運行您的AppIP入站流量。

更新:

事實證明,試圖

pip install mysql-python

是完全搞砸了我的項目的事情,我從計算機上刪除了所有已安裝的模塊:pip,conda,python,django ...

更新:錯誤的命令,即

pip安裝mysql-python

已將我的python默認路徑設置為2.7而不是3.7。

要修復此問題,我必須(Windows 10):

Cortana>搜索欄>鍵入“ env”>更改系統的環境變量>環境變量>選擇“路徑”> change>

創建並移動到頂部(或簡單地移動到頂部)您安裝python 3.7的路徑。

保存>關閉anaconda。 這使得pyhton及其模塊再次工作。 我不得不重新安裝pip,現在它又可以工作了。 但是當我的虛擬環境打開時,我在mysql中連接的數據庫出現了問題。

解決了

修復了我在上一個答案中描述的問題之后 ,我發現Heroku在管理mysql數據庫方面存在一些問題,即使與附加的ClearDB連接也是如此。 因此,我在Postgresql中重建了數據庫,因此不再需要mysql python模塊。 這使我不再迷戀Django和Heroku之間的先前沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM