實戰分享丨MySQL 與Django版本匹配相關經驗
run :
(env) E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro>python manage.py migrate
報錯程式碼提示如下:
raise errorclass(errno, errval)
django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1")
During handling of the above exception, another exception occurred:
根據提示分析報錯原因:
Django2.1 不再支援MySQL5.5,必須mysql5.6版本以上
查mysql版本和Django版本:
mysql 版本:
Django 版本:
根據原因分析得出解決思路:
二選一
(1)Django降級到2.0
(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro> pip install Django==2.0.0 -i
>>> import django
>>> django.VERSION
(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro> python .\manage.py makemigrations
No changes detected
(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro>
(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro> python .\manage.py migrate
成功連線資料庫。
(2)MySQL升級
1. 檢視 MySQL 的版本
mysql --version
mysql Version 14.14 Distrib 5.5.28, for Linux (x86_64) using reeadline 5.1
從上面可以看出,MySQL版本為5.5.28
2. 檢視 MySQL 的安裝包
yum list | grep mysql
注意:如果沒有看到想要升級的版本,請更新yum安裝庫,具體操作如下:
1) wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
2) rpm -ivh mysql-community-release-el6-5.noarch.rpm
3) 重新檢視即可,yum list | grep mysql
3. 檢視當前已經安裝的 MySQL 安裝相關資訊
yum list | grep ^mysql
注意:這裡的^代表以mysql開頭的項
-----------
yum info mysql-server
據說,上面的命令執行完畢後可以看到可升級的版本,但是並沒看到。
-----------
yum check-update mysql-server
可以檢查可用的安裝包
4. 升級 MySQL 及其元件
yum update mysql-server
執行結束,會顯示complete之類的關鍵字。
5. 檢查是否更新成功
mysql --version
當然,執行完這一步並不代表已經可以用MySQL了。在這裡,可能碰到了一個錯誤。
問題 1 :
啟動服務的時候,提示找不到 mysql.sock 之類的問題。
解決方案:
1.檢視錯誤日誌(前提:my.cnf裡面有配置日誌功能log-error = 路徑)
cat /var/log/mysql_error.log
2.發現skip-locking5.6不支援,已經過時。改為skip-extenal-locking
(skip-locking可參考連結:)
3.儲存退出,重啟mysqld服務即可
問題 2 :
啟動服務的時候,錯誤日誌顯示 Unknown/unsupported storage engine: InnoDB
解決方案:
執行刪除命令:
rm
-rf /var/lib/mysql/ib*
刪除:
ibdata1
、
ib_logfile0
、
ib_logfile1
檔案
重啟服務即可,
service
mysqld restart
當然,你可能會想,如果更新的版本存在5.5、5.6甚至更高,但我只是想更新到指定版本呢?那應該怎麼做?
其實很簡單,只要在上訴操作中更新前,改動 repo 配置檔案即可。
配置檔案路徑:/etc/yum.repos.d
修改配置檔案:mysql-community.repo和mysql-community-source.repo
修改內容:將所要更新的版本的enabled=1,其他版本的enabled=0即可,如下圖所示,只更新到mysql 5.6版本:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2717860/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播預告丨開源SDN互通實戰演示與經驗分享
- mysql load 相關實驗MySql
- mysql load 相關實驗記錄MySql
- Pstore 相關經驗
- 圍棋相關產品網路銷售經驗分享
- 【Django】有關多使用者管理的一點小經驗分享Django
- Scrum與OKR融合實踐經驗分享ScrumOKR
- Spring Cloud與Spring Boot版本匹配關係CloudSpring Boot
- 《Tsuro》實戰分享:移動VR遊戲開發經驗與教訓VR遊戲開發
- Django高階表單處理與驗證實戰Django
- 分享一些閱讀Java相關框架原始碼的經驗Java框架原始碼
- 雲控系統的玩法和實戰經驗分享
- 資料標註案例分享:搜尋結果相關性匹配標註專案丨曼孚科技
- MySQL從庫維護經驗分享MySql
- django相關問題Django
- C#網路爬蟲之TianyaCrawler實戰經驗分享C#爬蟲
- Django2.2使用mysql資料庫pymysql版本不匹配問題的解決過程與總結DjangoMySql資料庫
- 實驗七 檔案相關
- 技術分享丨 關於MySQL binlog解析那些事MySql
- 「Vue實戰」武裝你的專案 - 開發經驗分享Vue
- ubuntu中Django相關配置UbuntuDjango
- 面試要求之電商相關經驗面試
- [轉帖]基礎篇:JVM調優原理相關的知識和經驗分享JVM
- 經驗分享
- mysql 相關MySql
- 一次 RocketMQ 程式自動退出排查經驗分享(實戰篇)MQ
- 微信群控系統的應用和實戰經驗分享
- Spring Cloud在雲端計算SaaS中的實戰經驗分享SpringCloud
- Elasticsearch 實戰經驗總結Elasticsearch
- 深入Django專案實戰與最佳實踐Django
- 企業安全實踐經驗分享
- TiDB 6.0 實戰分享丨記憶體悲觀鎖原理淺析與實踐TiDB記憶體
- Flutter實戰之非同步相關Flutter非同步
- 初嘗微信小程式開發與實踐經驗分享微信小程式
- 面試缺乏實戰專案經驗?2020版uni-app專案實戰教程分享來襲面試APP
- 想用 300PC 和 300APP 做相容測試,有相關經驗分享下麼APP
- PICO & Unity VR實戰 經驗(1)UnityVR
- Android 隨筆—— ConstraintLayout 實戰經驗AndroidAI