文档章节

MySQLdb安装

艳沐石
 艳沐石
发布于 2014/11/19 15:14
字数 953
阅读 27
收藏 0

最近,朋友们常提起python。既然大家都觉得它好,而且之前我在linux下安装google的goagent代理的时候,出现过python的错误,我也自己想学习一下,理解一下它是如何处理解决问题的。python的环境,在linux下是安装好的。那么,为了能让python操作数据库,我按照网上的方法安装MySQLdb。

背景描述

服务器:centos 6.3
数据库:mysql 5.6采用rpm方式安装
    MySQL-client-5.6.16-1.el6.x86_64.rpm
    MySQL-server-5.6.16-1.el6.x86_64.rpm

软件准备

下载软件:
wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz

软件安装

  将文件解压后,在README文件中,有linux下安装步骤,如下
$ tar xfz MySQL-python-1.2.3.tar.gz
  $ cd MySQL-python-1.2.3
  $ # edit site.cfg if necessary
  $ python setup.py build
  $ sudo python setup.py install # or su first


问题解决

按照官方给的步骤,进行安装,出现了几个问题。

1. ImportError: No module named setuptools
解决方法:yum install python-setuptools

2. EnvironmentError: mysql_config not found
解决方法:需要安装MySQL-devel-5.6.16-1.el6.x86_64.rpm
(注:查看当前安装的mysql信息,或者find / -name mysql_config,查看是否存在对应命令。没有需要安装对应的mysql-devel。)

3.  /usr/bin/ld: cannot find -lmysqlclient_r
解决方法:mysql-python的目录下site.cfg 的 threadsafe = True 改为 False。就可以安装,的确如此。再看看 mysql 源码里的 ./configure –help 就知道有个 –enable-thread-safe-client 选项,如果安装的时候指定就可以了(就还是用 threadsfe = True)。
当调整为threadsafe的方法时候,知识将lmysqlclient_r更换为lmysqlclient。并没有根除这个问题。
在网上查看了遇到很多类似问题。后来在mysql官网上,搜索了一下lmysqlclient,发现一条如下的信息:
        Connector/C (libmysqlclient) is a client library for C development.
其实libmysqlclient是一个客户端类库为了C开发者,关于这个文件的说明地址如下:
http://dev.mysql.com/doc/connector-c/en/connector-c-installation-binary.html
在文中提到,使用rpm安装mysql的时候,需要安装的类库:shared和devel,而我只安装了devel。安装shared解决问题。

Installing MySQL Connector/C on Linux Using RPM Packages
There are two Linux RPM packages for MySQL Connector/C. Install one or both, depending on the capabilities you require:

The shared RPM contains the shared client library. Install this RPM if you intend to compile or run C API applications that depend on the shared client library.

The devel RPM contains the header files and the static client library. Install this RPM if you intend to compile C API applications.




问题扩展

1. 在之前安装lua的时候,也出现过/usr/bin/ld下无法找到目录。
    问题描述:
       在软件编译时出现usr/bin/ld: cannot find -lxxx的错误。
    原因:库文件并没有导入的ld检索目录中。
    解决方法:
        a. 确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或其它自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,
那么可以通过ln -sv lib123.so.1   lib123.so,建立一个连接重建lib123.so.
        b. 检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。
        c. ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。
尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的库文件导入ld.so.cache.

参考:
1. http://www.cnblogs.com/rollenholt/archive/2012/05/07/2487137.html
2. http://www.linuxqq.net/archives/733.html
3. http://www.jbxue.com/LINUXjishu/15034.html
4. http://dev.mysql.com/doc/connector-c/en/connector-c-installation-binary.html




© 著作权归作者所有

共有 人打赏支持
下一篇: JS事件控制
艳沐石
粉丝 2
博文 43
码字总数 23765
作品 0
大兴
程序员
私信 提问
python mysqldb的安装

首先:需要安装setuptools-0.6c11 安装过程: wget -O setuptools-0.6c8.tar.gz http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c8.tar.gz tar xzvf setuptools-0.6c8.......

崔小涣
2014/05/16
0
0
ImportError: No module named MySQLdb

ImportError: No module named MySQLdb 该错误是源于我们没有安装Python连接MySQL所需的MySQLdb库而引起。 MySQL是最流行的开源数据库之一,但在Python标准库中并没有集成MySQL接口程序,MyS...

netmouse
2014/10/17
0
0
Python导入MySQLdb库

windows下: 安装已编译版本: http://www.codegood.com/downloads 根据自己系统下载,双击安装。然后打开cmd,进入python格式,然后: 没有报错提示MySQLdb模块找不到,说明安装OK。 自己编...

张欢19933
2016/10/18
19
0
python安装MySQLdb的问题 ImportError: DLL load failed

在windows下面默认安装的python2.6再安装MySQLdb会遇到很多神奇的问题,如缺少库,编译错误等 例如python2.5出现 import MySQLdb Traceback (most recent call last): File "<stdin>", line...

mickelfeng
2013/07/26
0
0
Ubuntu下python安装mysqldb

Ubuntu下python安装mysqldb(驱动) 今天呢是Ubuntu下给python安装mysql驱动,方法如下:在终端中输入:sudo apt-get install python-mysqldbOK,搞定,简单吧?来测试下安装完成之后可以在Pyt...

cosmos180
2013/06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微信开发-正式号的配置

1、设置相关 业务域名的设置(不设置的话,相关页面会显示防欺诈盗号信息提示) JS接口安全域名设置 网页授权域名设置 注意:以上三个设置中都有下载文件的提示,此文件内容一样,下载一个即可...

Code辉
7分钟前
0
0
微服务之Eureka服务发现

当调用API或者发起网络通信的时候,无论如何我们都要知道被调用方的IP和服务端口,大部分情况是通过域名和服务端口,事实上基于DNS的服务发现,因为DNS缓存、无法自治和其他不利因素的存在,...

架构师springboot
8分钟前
0
0
spring boot2 admin login

版本: admin server 配置 admin client 配置 参考资料

showlike
10分钟前
0
0
NIO、Netty(Netty基础)

一、概述 Netty是一个Java的开源框架。提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 Netty是一个NIO客户端,服务端框架。允许快...

这很耳东先生
16分钟前
0
0
Spring boot 读文件

每次都忘, 找起来太费事, 因为太乱. 简单说, 就是不打成jar包的时候, 可以返回File, 打成jar包只能返回InputStream. -- 要是把返回File那个方法去掉多好.就不用tmd本地ok, 发布的时候懵逼了....

园领T
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部