首页 > 数据库 >Python中使用Mysql(安装篇)

Python中使用Mysql(安装篇)

时间:2022-10-09 16:01:14浏览次数:76  
标签:1.2 Python config Mysql python mysql MySQL 安装


准备工作 import MySQLdb

Linux系统自带了Python,但并不是都有这个包,至少我每次拿到一台全新的服务器时候,都发现没有装这个包。

这个东西的下载地址是

​http://sourceforge.net/projects/mysql-python/files/mysql-python/​

最新版本是1.2.3的。如果是微软用户 下载后缀是msi的, 像我这样的Linux用户,就下载​​MySQL-python-1.2.3.tar.gz​​ 就可以了。

(我上一次搭环境是可以下载的,但偏偏写博客的时候下载不了。。。那就百度一下这个包吧)

我下载了​​MySQL-python-1.2.3.tar.gz​​,上传到了百度云, http://pan.baidu.com/s/1ntmMBIL

 

安装MySQLdb

现在假设你已经下载到了MySQL-python-1.2.3.tar.gz 这个安装包 ,传到服务器上之后

1,解压 tar xvfz MySQL-python-1.2.3.tar.gz

2,cd MySQL-python-1.2.3

3,python setup.py build

4,sudo python setup.py install

这4步是 README文件中的安装步骤。

但它有几个前提条件:Python 2.3.4或以上,setuptools等。

如果你卡在第3步, 可能提示你 “ImportError: No module named setuptools”

那么你就需要安装setuptools这个工具了。如果你第3步没有报这个错误,可以跳过这一小段。

安装setuptools

下载地址https://pypi.python.org/pypi/setuptools ,这个网页很长,下载地址在最下面,用鼠标拉到底,再向上滚一屏大概可以看见下载链接。

我计划下载这个文件 setuptools-7.0.tar.gz  我也放在了百度云 http://pan.baidu.com/s/1eQenyts

1,解压 tar xvzf setuptools-7.0.tar.gz 

2,cd setuptools-7.0

3,python setup.py install 

然后我看到了错误消息

File          "setup.py"         , line          18


with open (init_path) as init_file:


^


SyntaxError: invalid syntax


打开setuptools的README.txt文件,看到了这句话。

Setuptools requires Python 2.6 or later. To install setuptools

它要求Python是2.6以上,可我的Python居然只有Python 2.3.4 -_-

好吧 ,希望你比我好运。下面升级Python。

安装Python

去Python的官网下载一个最新的Python2,因为我没有用过Python3.

地址 https://www.python.org/downloads/release/python-278/

Linux用户下载 

我的云盘地址,Python 2.7.8 http://pan.baidu.com/s/1jGtEqnc

上传到服务器后,开搞。

1,解压 tar xvzf Python-2.7.8.tgz 

2,cd Python-2.7.8  我本来想看下README,哇,一千多行

3,./configure 

4,make

5,make install

/usr/bin/install: cannot create regular file `/usr/local/bin/python2.7': Permission denied

如果你看到这句话,这是因为把文件放到/usr/local/bin/ 这个目录下需要root权限,所以先切换到root用户。 su

在root用户下执行make install 如果没有报错 ,很可能就是安装成功了。

# python

Python 2.7.8 (default, Nov 8 2014, 12:38:12) 
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

说明你现在的版本是2.7.8了。

如果出现错误信息:


_mysql.c:36:23: error: my_config.h: No such file or directory  
_mysql.c:38:19: error: mysql.h: No such file or directory
_mysql.c:39:26: error: mysqld_error.h: No such file or directory
_mysql.c:40:20: error: errmsg.h: No such file or directory


 则需要安装:


yum install  mysql-devel


现在返回去安装setuptools。回到setuptools的目录下,执行上面的第3步。

3,python setup.py install 

这次果然没报错,看来升级Python 有效果。

安装了setuptools之后,别忘了,这次是说 “安装MySQLdb”, 这跑题有点远。

 

继续回到MySQL-python-1.2.3的目录,执行上面的第4步。

4,sudo python setup.py install

sh: mysql_config: command not found
Traceback (most recent call last):
File "setup.py", line 15, in <module>
metadata, options = get_config()
File "/home/work/fupeng/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "/home/work/fupeng/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

又报了一堆错误。好像没有找打mysql_config 这个文件 ,上网搜了搜。http://blog.csdn.net/mldxs/article/details/23946129 这个博客上说

先执行 find / -name 'mysql_config'

 

然后修改MySQL-python-1.2.3目录下的site.cfg文件,注意不是setup.cfg 

去掉mysql_config=XXX这行的注释,并改成mysql_config=/usr/bin/mysql_config(以mysql_config文件所在机器上的目录为准)

mysql_config=/home/work/webserver/mysql/bin/mysql_config

 

再执行第3步,第4步。

3,python setup.py build

4,sudo python setup.py install

没报错。

python

import MySQLdb 

/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/local/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg/_mysql.pyc, but /home/work/fupeng/MySQL-python-1.2.3 is being added to sys.path

又报错了, 说这个东西已经存在了。 我决定去/usr/local/lib/python2.7/site-packages/ 这个目录下 把Mysql有关的东西都删了。

rm MySQL_python-1.2.3-py2.7-linux-x86_64.egg

锲而不舍,继续安装。

4,sudo python setup.py install

 

测试

python

import MySQLdb 

ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

又报错 。 这是我装这个东西报错最多的一次 。没事,百度一下。果然有人遇到。 这面这个网站解决了我的问题。

http://www.python tab.com/html/2013/pythonhexinbiancheng_0816/542.html

这个错误是说 不能打开ibmysqlclient_r.so.16 这个共享库。

两种解决方法:

1,如果你安装过Mysql客户端,你应该有这个文件,只是没有放在系统默认搜索的共享库路径下/lib /lib64 。 这是你只要能知道你的Mysql装在了什么地方,搜索到这个文件,作个软连接,放到/lib 就可以了。

将mysql/lib下所有关于libmysqlclient的so文件软链接到/usr/lib下。

>>> ln -s /usr/local/mysql/lib/mysql/libmysqlclient* /usr/lib                  

“/usr/local/mysql/lib/mysql/libmysqlclient” 这个路径是你安装Mysql的地方。我的就不在这里。

重新加载配置

>>> ldconfig

2,让Python-mysql去找 你的mysql共享库。

在MySQL-python-1.2.3的安装目录下找到site.cfg,将

#mysql_config = XXXXXXXXXXXXXXXX

注释符号去掉,并填上mysql_config的地址

 

我用的第一种 制作软连接 的方法。

 

再测试

python

>>> import MySQLdb

>>> 

什么也没有发生 ,没有消息就是好消息。安装完毕。

本来想把Python中对Mysql的操作写一点在这里,没想到安装花了这么久的时间。 那么,后面的,就写在下一篇了吧。


Q&A

python python-eggs 异常解决方法


/Application/bermuda/lib/python2.6/site-packages/pkg\_resources.py:1054: UserWarning: /home/refresh/.python-eggs is writable by group/othersand vulnerableto attack when usedwithget\_resource\_filename. Consider a more secure location (setwith .set\_extraction\_pathorthe PYTHON\_EGG_CACHE environmentvariable). warnings.warn(msg, UserWarning)


进入~目录,

chmod g-wx,o-wx .python-eggs/

标签:1.2,Python,config,Mysql,python,mysql,MySQL,安装
From: https://blog.51cto.com/u_15815563/5740630

相关文章

  • 使用c调用python
    windowc调用python的原理大概是将python当做一个c++库来调用导入头文件将python的头文件复制到项目中,头文件在python安装目录中在vs项目属性中的vc++目录的包含目录添......
  • yum安装
    问题问题Thissystemisnotregisteredwithanentitlementserver.Youcanusesubscription-managertoregister.解决办法:将配置文件subscription-manager.conf中......
  • mysql中set和enum枚举类型插入值和索引比较--笔记
    set,enum的数据类型都是字符串类型的对象,其中set最多可以包含64个元素,并且可以任意取到集合中的元素。而enum则是只能取到集合中的木一个元素,最多包含65536个元素,也就是说se......
  • 二十: MySql 事务日志
    MySql事务日志事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?事务的隔离性由锁机制实现。而事务的原子性、一致性和持......
  • 二十一: Mysql 锁机制
    Mysql锁机制事务的隔离性由这章讲述的锁来实现。1.概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并......
  • 如何查看 MySQL 数据库容量大小,表容量大小,索引容量大小?找到占用空间最大的表
    1.查看MySQL「所有库」的容量大小SELECTtable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024,2))as'数据容量(MB)',su......
  • mysql之select使用篇1
    一、sql概述、规则数据导入1、sql概述sql有两个重要的标准分贝是sql92和sql96标准,今天使用sql一直遵循这两个标准,不通的数据库生产厂商都支持sql语句,但是也各有特有的内容2......
  • elasticsearch head、kibana 安装和使用
    一、概述1、展示es数据的可视化工具2、eshead可以当作数据展示查看的工具(数据概览),对于查询等操作使用kibana二、安装eshead推荐参考文档:​​Elasticsearch教程(四)elastic......
  • python递归算法
    递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调自己”,一个使用递归技术的方法将会直接或间接的调用自己。利用递归可以用简单的程序来解决......
  • Mysql字符集
    1、修改MySQL5.7字符集我们在新建数据库时(Navicat)界面时会遇到这两个选项,字符集和排序规则在MySQL8.0版本之前,MySQL5.7默认的客户端和服务器都用了latin1,而latin1是不......