實戰分享丨MySQL 與Django版本匹配相關經驗


摘要:關於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 https://pypi.douban.com/simple

>>> 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版本:

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

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



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