Mac下MySql安裝經曆(含安裝錯誤排查、卸載多種折騰)

來源:互聯網
上載者:User

在安裝mysql的時候,活活折騰我兩天。結果終於被我折騰成功了……
一開始我就放了個錯誤:我下了32位版本的mysql:mysql-5.5.8-osx10.6-x86.dmg 
須知在mac下裝的是64位的python,所以後面我安裝mysql的python驅動Mysql-python,一直出錯:
importError dlopen(…./…./_mysql.so,2)

註:安裝mysql-python的時候,出現找不到mysql_config的錯誤,可以照網上的方法去修改安裝檔案,最好的方式是把mysql的bin檔案夾添加到環境變數中。

之類的……和下面提到的錯誤很像,不知道是不是一樣的,視窗被我關了,以不可考……不過官方的FAQ.txt有提到這種錯誤,說是gcc的版本不一樣,可能過舊之類的。後來查看一些網頁得知,原來mac用的是64位的python,所以要用64位的mysql……
所以卸載之。結果發現mysql的dmg包裡還沒卸載工具……鬱悶的於是在網上搜到了卸載mysql的方法,原來得手動刪除。
網上很多文章記述的方法中,刪除的不乾淨,丟了一個地方。我在stackflow上查到,於是寫出來,供大家查閱。http://hearrain.com/2011/01/495 
換了64位安裝包,原來應該沒什麼問題的,結果還是出現原來這樣類似的錯誤。
於是就索性轉用homebrew來安裝。
結果homebrew安裝的mysql,在python下import沒問題,不過卻不能初始化資料庫……在homebrew官網問了,卻一直沒有方法解決……(真不知道是不是我人品問題)
homebrew下裝的mysql是classic版mysql-5.1.54,我懷疑是版本問題,就轉向官網下mysql-5.1.54二進位包 
結果資料庫能初始化,不過python下import MySQLdb卻出現下面錯誤
>>> import MySQLdb
Traceback (most recent call last):
File "", line 1, in 
File "MySQLdb/__init__.py", line 19, in 
import _mysql
ImportError: dlopen(/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/_mysql.so, 2): Library not loaded: /usr/local/Cellar/mysql/5.1.54/lib/mysql/libmysqlclient_r.16.dylib
Referenced from: /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/_mysql.so
Reason: image not found

在我被折騰的死去活來的時候,我覺得好好研究一下錯誤碼。
錯誤中提到libmysqlclient_r.16.dylib不能載入,不過在mysql的lib裡libmysqlclient_r.16.dylib在的啊。
結果在stackoverflow 上提到了校正libmysqlclient_r.16.dylib的檔案問題,所以我就堅定了這部分有問題。
不過我在這篇文章 (這篇文章應該也是stackoverflow上的)中發現了問題真正原因:mysql-python的build問題。
這篇文章中,仔細讓我們校正了mysql/lib裡的libmysqlclient_r.16.dylib和python2.7/site-packages裡的_mysql.so。
通過otool -L _mysql.so 分析發現,原來_mysql.so依然連結的是homebrew安裝mysql時libmysqlclient_r.16.dylib的位置……因為 mysql-python在install時build,保留了舊的位置,所以需要重新build,最好是刪掉,重新解壓來安裝。
所以我想大概前面裝64位時,python下import不成功的原因就是mysql-python在install的時候保留了舊的位置……哎……沒文化真是害死人。
重新解壓mysql-python,install,測試成功。

總結: 
1、mac下預裝的python是64位的,所以一定要用64位的mysql。安裝方法:http://hearrain.com/2011/01/498 
2、mac下用DMG格式的mysql安裝的話,卸載很麻煩。卸載方法:http://hearrain.com/2011/01/495 
3、安裝好mysql或是其他軟體,得記得設環境變數。mac下修改環境變數的方法http://hearrain.com/2011/01/490 中有提到。
4、用setuptools重新安裝python組件時,記得重新build,或者重新解壓。
5、仔細分析錯誤碼,追蹤錯誤源頭,善於在stackoverflow上找答案。stackoverflow真是一個相當贊的技術問答社區。quora這樣的社區有點鬧了。技術社區應該很垂直,很乾脆,社交元素神馬的都是浮雲。

 

本文轉自:http://hearrain.com/2011/01/494

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.