在安装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. Django 使用 内置 content-type

    django内置的content-type组件, 记录了项目中所有model元数据的表 可以通过一个ContentType表的id和一个具体表中的id找到任何记录,及先通过ContenType表的id ...

  2. Python探索记(17)——函数

    # @Time : 2017/7/8 18:40 # @Author : 原创作者:谷哥的小弟 # @Site : 博客地址:http://blog.csdn.net/lfdfhl # @DESC : ...

  3. js 柯里化Currying

    今天读一篇博客的时候,看都有关柯里化的东西,由于好奇,特意查了一下,找到一篇比较好的文章,特意收藏. 引子先来看一道小问题:有人在群里出了到一道题目:var s = sum(1)(2)(3) .... ...

  4. better1【模式】Module模式

    var myModule = (function($, _) { var privateVariable = "Hello World" var pulicProperty = & ...

  5. BZOJ - 4771 七彩树 (可持久化线段树合并)

    题目链接 对每个结点建立两棵线段树,一棵记录该结点的子树下每种颜色对应的最小深度,另一棵记录子树下的每个深度有多少结点(每种颜色的结点只保留最浅的深度即可),自底而上令父节点继承子结点的线段树,如果合 ...

  6. 微软SaaS多租户解决方案

    微软SaaS多租户解决方案 docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns https://d ...

  7. verilog 2001中的一些新语法

    比较有用的:1,generate语句,但需注意,generate-for中变量范围是已知的确定值, generate-case,generate-if语句中变量都必须是固定的, generate必须跟 ...

  8. 【eclipse】 怎么解决java.lang.NoClassDefFoundError错误

    前言 在日常Java开 发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类 明明还在,为什么找不到?而且我 ...

  9. weblogic11g的安装使用

    一.JDK的安装 下载linux环境下的jdk安装文件,本文资源下载:jdk-7u79-linux-x64.tar.gz 将jdk放到linux制定目录下,执行以下命令进行解压操作 tar -zxvf ...

  10. php通过存储过程传入汉字参数并写入数据库

    写入数据库,汉字为???样式的乱码,后根据网上介绍的方法,参数前加N,数据库汉字内容变成空白. 解决方法,在PHP中先转为base64,再在mysql中base64解码,前提先保证mysql中有bas ...