Ubuntu下Python的MySQLdb的安裝以及常見問題的解決

     任何一個稍微復雜一點的網(wǎng)站都離不開和數(shù)據(jù)進行數(shù)據(jù)交換,在用Django開發(fā)的時候需要配置數(shù)據(jù)庫,當選擇MySQL數(shù)據(jù)庫時,要想django與mysql能順利“溝通”交換數(shù)據(jù),就需要一個橋梁——MySQLdb,前天晚上升級電腦ubuntu系統(tǒng)后(由14.04LTS版本升級到16.04LTS),之后電腦上以前的項目在執(zhí)行python manage.py runserver命令后就報錯了,錯誤信息是                django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比白山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式白山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋白山地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

然后百度尋找解決方法,包括去Stackoverflow上找方法,絕大多數(shù)文章說可能是沒安裝MySQLdb,然后我就去安裝MySQLdb,但是系統(tǒng)提醒已經(jīng)安裝了,提醒消息如下:Requirement already satisfied (use --upgrade to upgrade): MySQL-python==1.2.3 in /usr/local/lib/python2.7/dist-packages

這就說明系統(tǒng)里有MySQL-python,但為什么會報錯呢?想了很久,然后想到了卸載重新安裝,然后問題就解決了(哈哈,神器吧,其實我也沒弄明白這是為什么,可能和系統(tǒng)有關系,升級系統(tǒng)后,有些以前的東西可能就不好使了)。

        在之前的ubuntu 14.04LTS版本上安裝MySQLdb時就遇到過很多問題,今天在這里做一下總結(jié),這些都是我平時遇到的問題,以后可能會遇到更多,慢慢補充,有需要的朋友可以參考下(不正之處,還希望不吝賜教)。

  1. MySQLdb安裝

     安裝很簡單,如果你的電腦里有pythoneer三大神器virtualenv、fabric 和 pip(如果你是一名python開發(fā)人員,最后安裝一下,這三個工具功能確實很強大,網(wǎng)上有安裝方法,在此不做介紹),安裝MySQLdb非常簡單,一個命令就可解決。

pip install MySQL-python

如果你想指定版本可以這樣

pip install MySQL-python==1.2.3

如果安裝不了(前提是確保pip安裝成功,能使用),可能就是權(quán)限問題,此時在pip前加上sudo即可。

但是,你以為這樣就好了嗎?在windows系統(tǒng)下這樣可能就好了,但是在ubuntu系統(tǒng)下不行,它需要一些依賴包,安裝命令如下:

sudo apt-get install mysql-client 
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev

然后import MySQLdb,沒報錯的話,就是安裝成功

2.在執(zhí)行python manage.py runserver常見問題

(1)錯誤:mysql_config not found

    解決辦法:安安裝mysqld-dev包,安裝命令上面有

(2)錯誤:_mysql.c:2810: error: expected declaration specifiers before 'init_mysql'

    解決辦法:安裝python-dev

 (3)錯誤:ImportError: No module named setuptools

   解決辦法:安裝setuptools

   sudo apt-get install python-setuptools

 (4)錯誤1193, "Unknown system variable 'storage_engine'

  可能與django的數(shù)據(jù)庫配置有關系或者mysql配置文件有關,

在數(shù)據(jù)庫配置中加一句:

'OPTIONS': {
            'init_command': 'SET default_storage_engine=INNODB',
        },

即可解決問題。

MySQL5.5以后默認的數(shù)據(jù)庫存儲引擎是innod,我用的是5.7版本,而我之前的配置是

'OPTIONS': {
                    'init_command': 'SET storage_engine=MyISAM',  
        },

所以會報錯,所以這里有兩種修改方法,一種就是改django    setting文件,另一種就是改mysql配置文件etc/mysql/my.cnf,加一句SET default_storage_engine=MyISAM,但不管怎么改,兩者應該要保持一致。

網(wǎng)頁名稱:Ubuntu下Python的MySQLdb的安裝以及常見問題的解決
文章源于:http://bm7419.com/article24/jcigce.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、響應式網(wǎng)站動態(tài)網(wǎng)站、定制開發(fā)、App開發(fā)App設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設