Python连接MySQL

#!/use/bin/python
#coding=utf-8

import MySQLdb

# 打开数据库连接  url,username,password,database
db = MySQLdb.connect("localhost","root","root","cacti" )

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()

print "Database version : %s " % data

# 关闭数据库连接
db.close()

Python连接 MySQL 数据库,通常可以使用多种库,例如 `mysql-connector-python`、`PyMySQL` 或 `MySQLdb`。以下是几种常见方式的示例代码: ### 使用 mysql-connector-python 连接 MySQL 这是官方推荐的连接器之一,支持现代 Python 版本,并且功能完整。 ```python import mysql.connector try: # 建立数据库连接 connection = mysql.connector.connect( host='localhost', user='yourusername', password='yourpassword', database='mydatabase' ) if connection.is_connected(): print('成功连接到数据库') cursor = connection.cursor() # 可以在这里执行 SQL 查询 cursor.execute("SELECT VERSION()") db_version = cursor.fetchone() print(f"Database version: {db_version}") except Exception as e: print(f"连接数据库时出错: {e}") finally: if 'connection' in locals() and connection.is_connected(): cursor.close() connection.close() print('数据库连接已关闭') ``` ### 使用 PyMySQL 连接 MySQL `PyMySQL` 是一个纯 Python 实现的 MySQL 客户端库,广泛用于 Django 和其他框架中。 ```python import pymysql try: # 建立数据库连接 connection = pymysql.connect( host='localhost', user='root', password='password', database='mydatabase' ) print('成功连接到数据库') with connection.cursor() as cursor: # 执行 SQL 查询 cursor.execute("SELECT VERSION()") result = cursor.fetchone() print(f"Database version: {result}") except pymysql.err.OperationalError as e: print(f"连接数据库时出错: {e}") finally: if 'connection' in locals(): connection.close() print('数据库连接已关闭') ``` ### 使用 MySQLdb 连接 MySQL `MySQLdb` 是一个较老的库,仅支持 Python 2.x 和部分 Python 3.x 环境(通常为 Linux 系统)。 ```bash # 安装命令(适用于 Debian/Ubuntu) sudo apt-get install python-mysqldb ``` ```python import MySQLdb try: # 建立数据库连接 connection = MySQLdb.connect( host='localhost', user='root', passwd='password', db='mydatabase' ) print('成功连接到数据库') cursor = connection.cursor() cursor.execute("SELECT VERSION()") result = cursor.fetchone() print(f"Database version: {result}") except Exception as e: print(f"连接数据库时出错: {e}") finally: if 'connection' in locals(): connection.close() print('数据库连接已关闭') ``` ### 常见问题与解决方法 1. **无法连接MySQL 服务器** - 检查 MySQL 服务是否运行。 - 验证防火墙设置是否允许访问 MySQL 端口(默认为 3306)。 - 如果是远程连接,请确认 MySQL 用户权限配置允许从当前 IP 地址访问。 - 查看是否使用了错误的主机名或 IP 地址,如 `localhost` 应替换为实际 IP 地址以进行远程连接 [^3]。 2. **数据库连接超时** - 增加连接超时时间。 - 检查网络延迟或 SSH 隧道设置(如果使用了 SSH 转发) [^4]。 3. **认证失败** - 确认用户名和密码正确。 - 确保用户拥有连接权限和目标数据库的访问权限。 ### 示例:创建数据表 以下是一个在连接成功后创建名为 `users` 的数据表的示例: ```python cursor.execute(""" CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT ) """) print("数据表已创建") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值