解決django項目無法連接遠程mysql的問題


我們都知道django項目可以通過修改settings.py文件中的DATABASES這個對象,使用不同的數據庫。

如圖所示,我們想連接遠程的mysql,修改settings.py的配置

然后我們在終端啟動項目python manage.py runserver

不料發生報錯,這個錯很明顯就是無法連接遠程的mysql

下面我們就開始來解決這個問題

首先,我們通過xshell登陸遠程的服務器

然后進入 /etc/mysql/my.cnf 

然后修改my.cnf 這個文件的內容,保存退出

 重啟一下mysql

然后回到我們的django項目中,重新啟動一下項目,發現還是報之前那個錯誤,別急,我們還有一個東西沒有設置。

授權任意主機登陸
我們現在回到服務器上面,登陸mysql
終端命令為mysql -u root -p123456,-p后面緊跟着是你的密碼,不能有空格
grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
我們只需改一個地方
password: mysql 密碼
授權成功后,我們還需要刷新權限信息flush privileges;
現在搞了這么多我們又回到django,重新運行django項目,python manage.py runserver 發現還是報原來那個錯,后來想了想,
因為我用的是阿里雲服務器,其中阿里雲服務器有一個叫做安全組的東西。
我們可以看到紅色框框的那句話: 安全組未設置任何自定義放行規則,會導致無法訪問實例端口,若需訪問請添加安全組規則放行對應的端口。
因為我們mysql用的是3306這個端口,並沒有在安全組找到,所以我們先配一個。
好,到現在我們可以大膽地運行我們的django項目了
 並沒有報錯,成功地運行了,真happy。。。
我們來驗證一下是不是真的連上了遠程服務器
我們先查詢一下我們django項目的表有沒有數據
 
然后我們通過python manage.py shell,手動添加一個,然后在遠程服務器查詢是否有添加成功,
如果添加成功,說明我們本地的django項目已經連上了遠程的服務器。
 
我們已經成功添加一條數據到TestModel中,現在我們在服務器上查詢是否有這條數據。
 
很明顯我們剛才添加的數據已經存在了,說明大功告成,我們本地的django項目已經連上了遠程的服務器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM