您的位置:首页 > 数据库 > MySQL

Mac下MySql安装经历(含安装错误排查、卸载多种折腾)

2011-01-30 01:57 573 查看
在安装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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: