python连接mysql

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: (1)pyhton shell下导入MySQLdb失败。http://pypi.python.org/pypi/MySQL-python/(2)下载解压MySQL-python。http://pypi.

(1)pyhton shell下导入MySQLdb失败。
http://pypi.python.org/pypi/MySQL-python/
(2)下载解压MySQL-python。
http://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.3.tar.gz

安装: python setup.py build  && python setup.py install

buid出错缺少setuptools,如下:
Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    from setuptools import setup, Extension
ImportError: No module named setuptools

(4)下载安装setuptools。
http://pypi.python.org/pypi/setuptools    #downloads 选自己Python对应的版本。

python setup.py build  && python setup.py install
root@192.168.1.104:~/software/python# python
Python 2.6.6 (r266:84292, Jun 18 2012, 14:10:23)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import setuptools

上面没有报错说明安装setuptools成功了的。
(5)安装 mysql-devel 及其他必要的库
yum install mysql mysql-devel

(6)build mysqldb
cd MySQL-python-1.2.3
/MySQL-python-1.2.3# python setup.py build
实践出现:
在包含自 _mysql.c:29 的文件中:
pymemcompat.h:10:20: 错误:Python.h:没有那个文件或目录

继续执行python setup.py install,可能出现以下错误:
           ======> pymemcompat.h:10:20: 致命错误:Python.h:没有那个文件或目录 编译中断。
          出现这个问题的原因是,系统中的python是自带的,而没有安装python的开发包并没有安装,所以在shell下执行如下命令:
点击(此处)折叠或打开
yum install python-devel
Installed size: 454 k
Is this ok [y/N]: y
Installed:
  python-devel.i686 0:2.6.6-29.el6_2.2  Complete!

  再次:
python setup.py build

出错:
编辑 site.cfg ,把 mysql_config 那一行取消注释,并改为:
mysql_config = ”mysql_config的路径“(locate mysql_config。查找到mysql_config的路径)
python setup.py build
python setup.py install

出错:

  找不到setuptools;

  对应操作:

      1、python2.6 ,导入sys模块。

      2、print sys.path

                         将sys.path下增加一个软链接。该链接指向settools中的setup.py
安装:python setup.py install
Finished processing dependencies for MySQL-python==1.2.3

安装结束后,
打开 python2.6  输入
import MySQLdb   (注意:MySQLdb中的y是小写)
如果没够报错就说明安装成功了。

下面是一个批量导入数据到数据库的例子(myql.py):

 1 #!/usr/bin/env python2.6
 2 #encoding=utf-8
 3 
 4 import MySQLdb
 5 
 6 try:
 7     conn = MySQLdb.connect(host='10.10.13.162', user = 'root', passwd='123456',port=3306, charset='utf8')
 8 
 9     #使用cursor()方法获取操作游标
10     cur = conn.cursor()
11     conn.select_db('weixin')
12 
13     values = []
14     file_object = open('./aa.txt', 'r')
15     i = 2 
16     for eachLine in file_object.readlines():
17         tt = eachLine.strip()
18         i = i+1 
19         values.append((i, tt))
20     cur.executemany('insert into test values(%s, %s)', values)
21                 
22     conn.commit()
23     cur.close()
24     conn.close()
25 except MySQLdb.Error, e:
26     print 'error'

 执行:python2.6   mysql.py

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 ######################################
 4 #
 5 # @author migle
 6 # @date 2010-01-17
 7 #
 8 ######################################
 9 #
10 # MySQLdb 查询
11 #
12 #######################################
13 
14 import MySQLdb
15 
16 conn = MySQLdb.connect(host='localhost', user='root', passwd='longforfreedom',db='python')
17 
18 cursor = conn.cursor()
19 
20 count = cursor.execute('select * from test')
21 
22 print '总共有 %s 条记录',count
23 
24 #获取一条记录,每条记录做为一个元组返回
25 print "只获取一条记录:"
26 result = cursor.fetchone();
27 print result
28 #print 'ID: %s   info: %s' % (result[0],result[1])
29 print 'ID: %s   info: %s' % result 
30 
31 #获取5条记录,注意由于之前执行有了fetchone(),所以游标已经指到第二条记录了,也就是从第二条开始的所有记录
32 print "只获取5条记录:"
33 results = cursor.fetchmany(5)
34 for r in results:
35     print r
36 
37 print "获取所有结果:"
38 #重置游标位置,0,为偏移量,mode=absolute | relative,默认为relative,
39 cursor.scroll(0,mode='absolute')
40 #获取所有结果
41 results = cursor.fetchall()
42 for r in results:    
43     print r    #结果是元组类型,注意
44 cursor.close()
45 conn.close()    

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
25天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
114 1
|
29天前
|
分布式计算 关系型数据库 数据处理
Dataphin常见问题之没有建表的权限如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
4天前
|
SQL 关系型数据库 MySQL
Python与MySQL数据库交互:面试实战
【4月更文挑战第16天】本文介绍了Python与MySQL交互的面试重点,包括使用`mysql-connector-python`或`pymysql`连接数据库、执行SQL查询、异常处理、防止SQL注入、事务管理和ORM框架。易错点包括忘记关闭连接、忽视异常处理、硬编码SQL、忽略事务及过度依赖低效查询。通过理解这些问题和提供策略,可提升面试表现。
25 6
|
8天前
|
SQL 关系型数据库 MySQL
DQL语言之连接查询(mysql)
DQL语言之连接查询(mysql)
|
11天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL 安装及连接
MySQL 安装及连接
31 0
|
18天前
|
网络协议 安全 Python
python监听连接请求
【4月更文挑战第5天】本教程介绍了网络编程中服务器监听连接请求的关键步骤。首先,理解监听是服务器在特定端口等待客户端连接的基本概念。接着,设置监听涉及创建套接字、绑定地址和端口,以及开始监听。提供了一个Python示例,展示如何使用socket库实现监听。注意点包括异常处理、并发处理和安全性考虑。学习后,读者能掌握基础的监听连接请求代码编写。
|
20天前
|
存储 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
|
22天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
MySQL连接ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
26 0
|
15天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
84 1