Ubuntu下Python建立和连接数据库

本文介绍如何使用Python连接本地MySQL数据库,并创建一个具有UTF-8字符集的数据库。通过实例演示了连接参数的具体含义,包括数据库地址、用户名、密码、端口号及字符集设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


root@ubuntu:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.6.24-0ubuntu2 (Ubuntu)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database wuxiaobingtest character set utf8;
Query OK, 1 row affected (0.04 sec)

root@ubuntu:~# python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="wuxiaobingtest",port=3306,charset="utf8")
>>> print conn
<_mysql.connection open to 'localhost' at 17938d0>


===========
conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="wuxiaobingtest",port=3306,charset="utf8")

逐个解释上述命令的含义:

  • host:等号的后面应该填写mysql数据库的地址,因为就数据库就在本机上(也称作本地),所以使用localhost,注意引号。如果在其它的服务器上,这里应该填写ip地址。一般中小型的网站,数据库和程序都是在同一台服务器(计算机)上,就使用localhost了。
  • user:登录数据库的用户名,这里一般填写"root",还是要注意引号。当然,如果读者命名了别的用户名,数据库管理者提供了专有用户名,就更改为相应用户。但是,不同用户的权限可能不同,所以,在程序中,如果要操作数据库,还要注意所拥有的权限。在这里用root,就放心了,什么权限都有啦。不过,这样做,在大型系统中是应该避免的。
  • passwd:上述user账户对应的登录mysql的密码。我在上面的例子中用的密码是"123123"。不要忘记引号。
  • db:就是刚刚通create命令建立的数据库,我建立的数据库名字是"qiwsirtest",还是要注意引号。看官如果建立的数据库名字不是这个,就写自己所建数据库名字。
  • port:一般情况,mysql的默认端口是3306,当mysql被安装到服务器之后,为了能够允许网络访问,服务器(计算机)要提供一个访问端口给它。
  • charset:这个设置,在很多教程中都不写,结果在真正进行数据存储的时候,发现有乱码。这里我将qiwsirtest这个数据库的编码设置为utf-8格式,这样就允许存入汉字而无乱码了。注意,在mysql设置中,utf-8写成utf8,没有中间的横线。但是在python文件开头和其它地方设置编码格式的时候,要写成utf-8。切记!

注:connect中的host、user、passwd等可以不写,只有在写的时候按照host、user、passwd、db(可以不写)、port顺序写就可以,端口号port=3306还是不要省略的为好,如果没有db在port前面,直接写3306会报错.

 
<think>首先,用户的问题是:“我想查找Python2.7连接数据库的方法或库请问Python2.7连接数据库教程及常用库”。这明用户想了解在Python2.7环境中如何连接数据库,以及推荐的库相关教程。系统指令包括:-使用$...$或$$...$$格式示数学达式(但在本问题中,不涉及数学,所以可能不需要)。-用中文回答。-生成相关问题。-在引用的段落末尾添加引用标识。-回答结构清晰,帮助用户逐步解决问题。用户提供了几个引用:-引用[1]:关于Python3使用PyMySQL连接MySQL数据库的信息。-引用[2]:提到Python2.7连接MySQL数据库,使用mysqldb库。-引用[3]:一个Python3.7连接数据库的代码示例。用户特别提到Python2.7,所以我需要专注于Python2.7的解决方案。从引用中:-引用[2]说:“python2.7版本连接mysql数据库入门...你要下载python连接数据库的模板...看请是32位的还是64位的windows操作系统...”-它提到Python2.7使用mysqldb库。背景知识:-在Python2.7中,连接MySQL数据库的常用库是MySQLdb(也称为mysqldb)。-其他数据库可能有不同的库,比如SQLite用sqlite3(内),PostgreSQL用psycopg2等。-用户的问题可能泛指数据库,但从引用集中在MySQL,我应该以MySQL为主,但也可能需要提到其他数据库。用户查询的重点是Python2.7连接数据库的方法常用库,所以我的回答应该:1.列出常用库:对于Python2.7,推荐MySQLdb(MySQL)以及其他库如sqlite3(内),psycopg2(PostgreSQL)等。2.提供简单教程:如何安装MySQLdb,然后示例代码。3.参考提供的引用:引用[2]直接相关,我可以在适当的地方引用它。4.结构清晰:一步步引导用户。5.生成相关问题:在结尾添加相关问题。生成相关问题:参考系统指令的示例,“§§相关问题§§”后列出问题。-类似示例,我应该添加几个相关的问题,比如优化、常见错误、其他数据库连接等。回答结构:-开头直接回答用户的问题。-解释常用库。-提供安装步骤。-提供代码示例。-引用相关信息。-结束前生成相关问题。确保使用中文。</think> ### Python 2.7 连接数据库教程及常用库 Python 2.7 作为旧版本的 Python,支持多种数据库连接库。根据您的查询提供的引用,我将逐步介绍 **Python 2.7 连接数据库的常用库、安装方法代码示例**。重点包括 MySQL(因为引用中涉及较多),以及 SQLite、PostgreSQL 等其他常见数据库的解决方案。结构如下: 1. 常用库推荐 2. 安装方法 3. 连接数据库教程(以 MySQL 为例) 4. 常见问题与注意事项 #### 1. 常用库推荐 在 Python 2.7 中,连接数据库的库依赖于数据库类型: - **MySQL**:推荐使用 `MySQLdb`(也称为 `mysql-python` 或 `mysqldb`)。这是 Python 2.7 中最常用的库,支持 MySQL 数据库连接,并符合 Python DB API 2.0 规范[^2]。 - **SQLite**:使用内库 `sqlite3`(Python 2.7 自带,无需额外安装)。 - **PostgreSQL**:推荐使用 `psycopg2`。 - **其他数据库**:如 Oracle(`cx_Oracle`)、SQL Server(`pyodbc`)。 重点:针对 MySQL,`MySQLdb` 是首选库,因为它在 Python 2.7 中性能稳定且广泛使用。从引用中看,`MySQLdb` 是 Python 2.7 连接 MySQL 的模板库,需要根据操作系统(32位或64位)下载合适的包[^2]。 #### 2. 安装方法 安装库的步骤根据操作系统(Windows、Linux、macOS)有所不同。以下是 `MySQLdb` 的安装方法(其他库类似): - **Windows 系统**: - 下载预编译包:访问 [MySQLdb官方下载页](https://pypi.org/project/MySQL-python/#files),选择与 Python 2.7 系统(32位或64位)兼容的版本[^2]。 - 安装命令(在命令行运行): ```bash pip install MySQL-python ``` 如果失败,请检查 Python 2.7 的路径系统架构。 - **Linux/macOS 系统**: 使用 pip 安装: ```bash pip install MySQL-python ``` 或通过包管理器(如 apt-get 或 brew): ```bash sudo apt-get install python-mysqldb # Ubuntu brew install mysql-connector-c # macOS,然后安装 MySQLdb ``` - **其他库**: - SQLite:无需安装(Python 2.7 内 `import sqlite3`)。 - PostgreSQL:`pip install psycopg2`。 注意:安装前确保 Python 2.7 已正确配置,并检查依赖(如 MySQL 开发头文件)。引用中提到,在 Windows 上操作时需注意系统位数匹配,以避免兼容性问题[^2]。 #### 3. 连接数据库教程(以 MySQL 为例) 下面是一个完整的 Python 2.7 连接 MySQL 数据库的示例教程。基于引用[3]的 Python 3.7 代码,我已适配为 Python 2.7 格式。 **前提条件**: - 已安装 MySQL 服务器 `MySQLdb` 库。 - 创数据库(例如:数据库名为 `test_db`,用户名为 `user`,密码为 `password`,主机为 `localhost`)。 **步骤-by-step**: 1. **导入库**:使用 `MySQLdb`。 2. **建立连接**:指定数据库主机、端口、用户名、密码数据库名。 3. **获取游标**:用于执行 SQL 查询。 4. **执行查询**:例如读取数据。 5. **关闭连接**:释放资源。 **示例代码**: ```python import MySQLdb # 建立数据库连接 try: # 连接参数(根据实际修改) host = 'localhost' # 数据库主机地址 port = 3306 # MySQL 默认端口 user = 'root' # 数据库用户名 passwd = 'password' # 密码 db = 'test_db' # 数据库名称 # 创连接对象 connect = MySQLdb.connect(host=host, port=port, user=user, passwd=passwd, db=db, charset='utf8') # 获取游标 cursor = connect.cursor() # 执行 SQL 查询(示例:查询所有数据) cursor.execute("SELECT * FROM your_table_name") results = cursor.fetchall() # 获取所有结果 # 打印结果 print("查询结果:") for row in results: print(row) # 关闭游标连接 cursor.close() connect.close() print("连接已关闭") except MySQLdb.Error as e: print("连接失败,错误信息:", e) ``` **说明**: - 错误处理:使用 `try-except` 捕获 `MySQLdb.Error`,增强健壮性。 - 参数修改:替换 `your_table_name` 为实际名。 - 引用相关:此代码基于 Python 3.7 的连接示例适配而来[^3],但调整为 Python 2.7 的 `MySQLdb` 格式。 **其他数据库示例**(简要): - **SQLite**(内置库): ```python import sqlite3 conn = sqlite3.connect('test.db') # 连接到 SQLite 数据库文件 cursor = conn.cursor() cursor.execute("SELECT * FROM table") print(cursor.fetchall()) conn.close() ``` - **PostgreSQL**: ```python import psycopg2 conn = psycopg2.connect(host="localhost", dbname="test", user="user", password="pass") cursor = conn.cursor() # 类似执行查询 ``` #### 4. 常见问题与注意事项 - **兼容性问题**:Python 2.7 已于2020年停止支持,议升级到 Python 3.x。如果必须使用 Python 2.7,确保库版本兼容。 - **常见错误**: - Windows 安装失败:确保下载匹配的预编译包(32位 vs 64位)。引用中提到在 Windows 操作中需注意系统位数[^2]。 - 连接拒绝:检查防火墙、MySQL 服务状态用户权限。 - **性能优化**:使用连接池(如 `DBUtils`),避免频繁创连接。 - **安全性**:避免直接在代码中硬编码密码,使用环境变量或配置文件。 如果您正在迁移到 Python 3.x(参考引用[1][3]),PyMySQL 是一个好选择,但针对 Python 2.7,坚持使用 `MySQLdb` 更稳定[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值