Python 連接 MySQL

来源:互联网 发布:试题库管理系统java 编辑:程序博客网 时间:2024/06/01 09:20

MySQL 是十分流行的開源資料庫系統,很多網站也是使用 MySQL 作為後台資料儲存,而 Python 要連接 MySQL 可以使用 MySQL 模組。MySQLdb 模組可以讓 Python 程式連線到 MySQL server, 執行 SQL 語句及擷取資料等。

開始前要確定系統內的 Python 有安裝 MySQLdb 模式,你可以 Python command line interpreter 檢查,在指令模式輸入 python,然後便可以開始檢查:

Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
File "", line 1, in 
ImportError: No module named MySQLdb
>>> exit()

 
如果見以上面的 "ImportError: No module named MySQLdb" 一句,便表示系統沒有安裝,到MySQLdb 官方網站 下載 MySQLdb,並用以下方法安裝:

$ tar zxvf MySQL-python-1.2.2.tar.gz
$ cd MySQL-python-1.2.2
$ python setup.py build
$ python setup.py install

 
安裝好 MySQLdb 後便可以編寫程式碼,以下是簡單的例子:

PLAIN TEXT
CODE:
  1. #!/usr/bin/python
  2.  
  3. # 引入 MySQL 模組
  4. import MySQLdb
  5.  
  6. # 連接到 MySQL
  7. db = MySQLdb.connect(host="localhost", user="db_user", passwd="db_pass", db="db_name")
  8. cursor = db.cursor()
  9.  
  10. # 執行 SQL 語句
  11. cursor.execute("SELECT * FROM db_table")
  12. result = cursor.fetchall()
  13.  
  14. # 輸出結果
  15. for record in result:
  16.     print record[0]




在python运行过程中出现如下错误:
python错误:ImportError: No module named setuptools
这句错误提示的表面意思是:没有setuptools的模块,说明python缺少这个模块,那我们只要安装这个模块即可解决此问题,下面我们来安装一下:
在命令行下:
下载setuptools包
shell# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
解压setuptools包
shell# tar zxvf setuptools-0.6c11.tar.gz
shell# cd setuptools-0.6c11
编译setuptools
shell# python setup.py build
开始执行setuptools安装
shell# python setup.py install

安装完成


执行python setup.py install.这个时候可能会引发一系列的问题:
     A)提示缺失setuptools,这是因为安装mysql-python时需要用到setuptools提供的组件,

 下载与你系统上所装的python相对应的setuptools,

我这里下载的是  setuptools-0.6c11-py2.7.egg (md5),到下载目录下,执行sh  setuptools-0.6c11-py2.7.egg,

这样就将其安装上了!

     B)继续执行python setup.py install,可能出现以下错误:
           ======> pymemcompat.h:10:20: 致命错误:Python.h:没有那个文件或目录 编译中断。
          出现这个问题的原因是,系统中的python是自带的,而没有安装python的开发包并没有安装,所以在shell下执行如下命令:
点击(此处)折叠或打开

yum install python-devel
     C)和B)一样执行命令后,还可能出现这样的类似的错误:
        =======>_mysql.c:36:23: 致命错误:my_config.h:没有那个文件或目录 编译中断。
         显而易见,解决的方法和上面的也是一样的,这是因为mysql开发包未安装,同样执行以下命令就可以解决了!
点击(此处)折叠或打开

yum install mysql-devel
3)最后,问题就圆满解决了!(PS:前提是你已经安装好了mysql,如果没有也会触发相应错误,这时只要安装就行了)