在安装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

(转)Mac下MySql安装经历(含安装错误排查、卸载多种折腾)的更多相关文章

  1. Mac下MySQL与MySQLWorkbench的安装

    通过查阅各种各样的资料,去安装这些东东.最后经过一番周折终于安装完成.下面是对安装过程和遇到的问题做个简单记录. 一. 下载MySQL和MySQL Workbench http://dev.mysql ...

  2. Mac下MySQL卸载方法 转载

    mac下mysql的DMG格式安装内有安装文件,却没有卸载文件……很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stackoverflow这里发现了一个 ...

  3. Mac下MySQL卸载方法

    mac下mysql的DMG格式安装内有安装文件,却没有卸载文件……很郁闷的事.1 sudo rm /usr/local/mysql2 sudo rm -rf /usr/local/mysql*3 su ...

  4. MAC下 mySQL及workbench安装

    1.首先去mysql 网站下载安装包,https://dev.mysql.com/downloads/mysql/ 选择第一个.dmg格式的下载安装 2.安装完成后,在System Preferenc ...

  5. Mac下利用(xcode)安装git

    Mac下利用(xcode)安装git 一.AppStore 最安全途径:搜索下载Xcode,(需要AppleID). 其他:直接百度Xcode下载. 二.Xcode 打开Xcode-->Pref ...

  6. CentOS下MySQL 5.7编译安装

    CentOS下MySQL 5.7编译安装   文章目录 安装依赖包 下载相应源码包 添加mysql用户 预编译 编译安装 启动脚本,设置开机自启动 /etc/my.cnf,仅供参考 初始化数据库 设置 ...

  7. Windows 下 MySql 5.7.20安装及data和my.ini文件的配置(转)

    Windows 下 MySql 5.7.20安装及data和my.ini文件的配置     本文通过图文并茂的形式给大家介绍了MySql 5.7.20安装及data和my.ini文件的配置方法. my ...

  8. windows下mysql 8.0.12安装步骤及基本使用教程

    本文实例为大家分享了windows下mysql 8.0.12安装步骤及使用教程,供大家参考,具体内容如下 补充:mysql 已经更新到了 8.0.19,大致步骤和这个差不多,照着来就完事了. 我下载的 ...

  9. Linux系统环境下MySQL数据库源代码的安装

    Linux系统环境下MySQL数据库源代码的安装 基本环境:CentOS Linux release 7.8.2003 (Core).MySQL5.6 一.      安装环境准备 若要在Linux系 ...

  10. MAC下 mysql不能插入中文和中文乱码的问题总结

    MAC下 mysql不能插入中文和中文乱码的问题总结 前言 本文中所提到的问题解决方案,都是基于mac环境下的,但其他环境,比如windows应该也适用. 问题描述 本文解决下边两个问题: 往mysq ...

随机推荐

  1. 小晚wan的公众号

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/70932630 本文出自[我是干勾鱼的博客] 小晚wan的公众号还是挺深刻的,有时 ...

  2. will-change 提高页面滚动、动画等渲染性能

    一.先来看一个例子 视差滚动现在不是挺流行的嘛,然后Chris Ruppel当其使用background-attachment: fixed实现背景图片不随滚动条滚动而滚动效果的时候,发现,页面的绘制 ...

  3. Python虚拟环境设置

    Python2环境 首先,我们用pip安装virtualenv: pip3 install virtualenv 然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做: 第 ...

  4. python学习之控制语句

    #if statement number=int(input("please input a number")); if number<10 : print("is ...

  5. JS 隔行变色

    <script type="text/javascript">       window.onload=function(){             var oUl= ...

  6. Windows 7 扩展玻璃效果(Aero Glass)

    转自:http://www.cnblogs.com/gnielee/archive/2010/10/04/windows7-extend-aero-glass.html Windows 7 操作系统默 ...

  7. spring_JavaConfig

    从Spring 3起,JavaConfig功能已经包含在Spring核心模块,它允许开发者将bean定义和在Spring配置XML文件到Java类中. interface: package sprin ...

  8. C# 实现程序只启动一次(实现程序自重启)

    程序运行过程中,不能有多个实例运行,并且需要程序自己可以重启(重新运行),所以代码如果下代码: static void Main() { bool createNew; using (System.T ...

  9. JAVA 工厂模式:简单工厂

    简单工厂模式(SimpleFactory Pattern): 又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式.在简单工厂模式中,可以根据参数的不同返回不同类的 ...

  10. Tomcat服务器下 catalina.out 日志开关

    很多异常在 debug 日志里不会打印,但在 catalina.out 里会打印,比如方法调用找不到,jdk 版本不匹配等.但是打开了该日志开关又会产生一个问题,就是它会哗啦啦的不断急剧膨胀,文件太大 ...