Python的MySQL模块在2.6下的安装报错sh: mysql_config: command not found的解决办法

作者:我就是个世界 发表于:2012-01-03
操作系统:Linux Cent OS 6.0
相关环境:Python 2.6.5 ; MySQL 5.5.19
安装版本:MySQL-python-1.2.3

MySQLdb是Python连接MySQL的模块,下面介绍一下源码方式安装MySQLdb:

    首先要下载:
    wget http://sourceforge.net/projects/mysql-python/files/latest/download?source=files

    解压:tar zxvf MySQL-python-1.2.3.tar.gz
    
    进入文件目录,运行以下命令:
    cd MySQL-python-1.2.3
    sudo python setup.py install
    
    安装完成,到你的python安装目录下的site-packages目录里检查以下文件是否存在,如果存在即代表安装成功了
    Linux:MySQL_python-1.2.3-py2.6-linux-i686.egg
    Mac OS X:MySQL_python-1.2.3c1-py2.6-macosx-10.4-x86_64.egg
    注:如果碰到mysql_config not found的问题,有两种方法解决:
    1)sudo ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
    将mysql_confi从你的安装目录链接到/usr/local/bin目录下,这样就可以在任意目录下访问了(也可以放到/usr/bin)
    2)编辑源码文件夹的site.cfg文件,去掉#mysql_config = /usr/local/bin/mysql_config前的注释#,修改后面的路径为你的mysql_config真正的目录就可以了。(如果不知道mysql_config在哪里,运行命令:whereis mysql_config)

    测试方法
    1)运行命令python进入python运行环境
    2)输入以下python代码进行测试

    import MySQLdb
    test=MySQLdb.connect(db='mydb',host='myhost',user='u',passwd='p')
    cur = test.cursor()
    cur.execute('show databases;')
    for data in cur.fetchall():
        print data

    3)如果你在屏幕上看到了你几个数据库的库名的输出代表你安装成功了
    
    可能碰到的问题
    1)问题:ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
    原因是python无法找到mysql目录下的libmysqlclient_r.so.16动态库,其实MySQLdb是调用mysql的c函数库.所以本机上首先得安装了mysql
    然后: export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql:$LD_LIBRARY_PATH
    并且将/usr/local/mysql5.1/lib/mysql 放入/etc/ld.so.conf中
    /etc/ld.so.conf改后内容为:
    include ld.so.conf.d/*.conf
    /usr/local/mysql5.1/lib/mysql
    最后重新再测试一下,就不会有上面的问题了


参考引用:http://www.sandzhang.com/blog/2010/04/06/install-mysql-python-mysqldb-in-v26/

分享:

扫一扫在手机阅读、分享本文

请发表您的评论