CentOS 下安装python 之MySQLdb

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: yum -y install mysql-devwget http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.
yum -y install mysql-dev
wget
http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.4b4/MySQL-python-1.2.4b4.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmysql-python%2F&ts=1364895531&use_mirror=nchc tar zxvf MySQL-python-1.2.4b4.tar.gz cd MySQL-python-1.2.4b4 python setup.py build python setup.py install

urllib2.URLError: <urlopen error [Errno 110] Connection timed out>
像报了这样的错,多试几次,网络请求超时了

如果 报EnvironmentError: mysql_config not found

版本是2.7.3 

此时执行 find / -name mysql_config 在/usr/bin/下发现了这个文件
然后修改MySQL-python-1.2.3目录下的site.cfg文件
去掉mysql_config=XXX这行的注释,并改成mysql_config=/usr/bin/mysql_config(以mysql_config文件所在机器上的目录为准)

在Python代码



conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python') 中加一个属性:
 改为:
conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python',charset='utf8')
charset是要跟你数据库的编码一样,如果是数据库是gb2312 ,则写charset='gb2312'。

 

下面贴一下常用的函数:

然后,这个连接对象也提供了对事务操作的支持,标准的方法
commit() 提交
rollback() 回滚

cursor用来执行命令的方法:
callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
nextset(self):移动到下一个结果集

cursor用来接收返回值的方法:
fetchall(self):接收全部的返回结果行.
fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
fetchone(self):返回一条结果行.
scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条.

import MySQLdb
try:
    conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='admin',db='mysql',port=3306)
    cur=conn.cursor()
    #cur.execute('select * from user')
    cur.execute('select version()')
    data = cur.fetchone()
    print "Databases version: %s " %  data
    cur.close()
    conn.close()
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])
     
import MySQLdb as mdb
import sys
conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
with conn:

    cur = conn.cursor()
    cur.execute("Create TABLE IF NOT EXISTS \
        Writers(Id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(25))")
    cur.execute("INSERT INTO Writers(Name) VALUES('Jack Luo')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Kity Alice')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Alex ok')")
import MySQLdb as mdb
import sys
conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
with conn:
    cur = conn.cursor()
    cur.execute("SELECT * from Writers")
    rows = cur.fetchall()
    for row in rows:
        print row
import MySQLdb as mdb
import sys
conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
with conn:
    cur = conn.cursor()
    cur.execute("SELECT * from Writers")
    numrows = int(cur.rowcount)
    for i in range(numrows):
        row = cur.fetchone()
        print row[0],row[1]
import MySQLdb as mdb
import sys
conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
with conn:
    cur = conn.cursor(mdb.cursors.DictCursor)
    cur.execute("SELECT * FROM Writers")

    rows = cur.fetchall()

    for row in rows:
        print "%s %s" % (row["Id"],row["NAME"])
import MySQLdb as mdb
import sys

conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
with conn:
    cur = conn.cursor()
    cur.execute("SELECT * from Writers")
    rows = cur.fetchall()
    desc = cur.description
    print 'cur.description:',desc
    print "%s %3s" % (desc[0][0],desc[1][0])
    for row in rows:
        print "%2s %3s" % row
import MySQLdb as mdb
import sys
conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
with conn:
    cur = conn.cursor()
    cur.execute("UPDATE Writers SET NAME=%s WHERE Id = %s",("Guy de Maupasant","4"))
    print "Number of rows updated: %d" % cur.rowcount
import MySQLdb as mdb
import sys
try:
    fin = open("logo.png")
    img = fin.read()
    fin.close()
except IOError,e:
    print "Error %d: %s" % (e.args[0],e.args[1])
    sys.exit(1)
try:
    conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
    cursor = conn.cursor()
    cursor.execute("INSERT INTO Images SET Data='%s'" % mdb.escape_string(img))
    conn.commit()
    cursor.close()
    conn.close()
except mdb.Error,e:
    print "Error %d:%s" % (e.args[0],e.args[1])
    sys.exit(1)
import MySQLdb as mdb
import sys
try:
    conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
    cursor = conn.cursor()
    cursor.execute("SELECT Data FROM Images LIMIT 1")
    fout = open('logo2.png','wb')
    fout.write(cursor.fetchone()[0])
    fout.close()
    cursor.close()
    conn.close()
except IOError,e:
    print "Error %d: %s" %(e.args[0],e.args[1])
    sys.exit(1)
import MySQLdb as mdb
import sys
try:
    conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306)
    cursor = conn.cursor()
    cursor.execte("UPDATE Writers SET Name = %s WHERE Id = %s",("JACK LUO","1"))
    cursor.execte("UPDATE Writers Set Name = %s where Id = %s ",("Alex LI",'2'))
    cursor.execte("UPDATE Writers Set Name = %s where Id = %s",("Leonid Leonov",'3'))
    conn.commit()
    cursor.close()
    conn.close()
except mdb.Error,e:
    conn.rollback()
    print "Error %d: %s" % (e.args[0],e.args[1])

    

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2天前
安装OpenCV-Python
安装OpenCV-Python
9 1
|
2天前
|
Linux
centos 6.5安装yum
centos 6.5安装yum
20 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
15 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
10 0
|
3天前
|
5G Python
Windows11搭建Python环境(Anaconda安装与使用)
Windows11搭建Python环境(Anaconda安装与使用)
17 0
|
3天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
9 0
|
4天前
|
存储 Linux 网络安全
centos7使用yum网络安装
这些是使用Yum进行网络安装的基本步骤。根据你的需求,你可以重复步骤3和4来安装其他软件包。请注意,执行Yum操作需要root或具有sudo权限的用户。
16 1
|
10天前
|
关系型数据库 MySQL Linux
centos7安装mysql-带网盘安装包
centos7安装mysql-带网盘安装包
60 2
|
15天前
|
Ubuntu Python
python3安装clickhouse_sqlalchemy(greenlet) 失败
如果上述方法仍然无法解决问题,建议查阅相关错误信息和官方文档,以获取更详细的帮助。确保你的Python环境和依赖库都在最新版本,有时问题可能会因为版本不兼容而导致安装失败。
18 0
|
16天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
32 0