前言:
python连接mysql数据库需要导入mysql,python2使用的是MySQLdb,python3使用的是pymysql
参考文档:Python3 MySQL 数据库连接 – PyMySQL 驱动 | 菜鸟教程
具体安装方案:
一、pycahrm操作
1、安装PyMySQL
2、添加pymysql的解释器
ps:这个安装成功后搜不到
二、pip命令
1、pip install PyMySQL
2、在python中导入pymysql,验证是否能够成功引用
ps:上面两种方案任选其一即可
三、实际使用
import pymysql
四、案例理解
准备工作:数据库建张表
# -*- coding: utf-8 -*-
# @Author : hxy
# @Time : 2022/1/10 10:51
# @Function:
'''
数据容器:mysql
操作数据库的步骤
1、连接数据库,通过connnect函数链接,生成connection对象
2、定义我们的游标Cursor,再通过我们游标执行脚本并获取结果
3、关闭连接
'''
import pymysql
# 1、建立mysql连接
conn = pymysql.connect(host='127.0.0.1',
port=3306,
user='root',
password='root',
database='test_cases',
charset='utf8')
'''
常用方法:
1、cursor()使用当前连接创建并返回游标
2、commit()提交当前事务
3、rollback()回滚当前事务
4、close()关闭当前连接
'''
# 2、建立游标
cur = conn.cursor()
'''
游标操作方法:
1、execute()执行数据库查询或命令,将结果从数据库返回给客户端
2、fetchone()获取结果集的下一行
3、fetchall()获取结果集的所有行
4、fetchmany()获取结果集的几行
'''
# 3、执行脚本
cur.execute('select weaid,success from weather')
print(cur.fetchall())
conn.close()
五、可能会出现的问题以及解决方案
1、通过pip命令安装,安装成功后在setting却查不到
原因:pip安装错了路径,安装到本地环境当中,而使用的项目环境为虚拟环境
2、ERROR: Could not find a version that satisfies the requirement MySQLdb (from versions: none)
ERROR: No matching distribution found for MySQLdb
原因:python2使用的是MySQLdb,python3使用的是pymysql
3、之前使用python2,后改用python3,mysql使用不了
运行pip install mysqlclient
参考文档:python3下import MySQLdb出错问题_tangtang1226的博客-CSDN博客_import mysqldb报错
4、安装成功了,但是代码导包一直爆红
如下图:在已经安装成功的情况下还一直让安装包
原因:import pymysql是小写不是大写
5、AttributeError: 'NoneType' object has no attribute 'encoding'
Traceback (most recent call last):
File "C:\Users\mihxy\PycharmProjects\key_demo\key_worddemo\test_weather.py", line 18, in <module>
conn = pymysql.connect(host='127.0.0.1', port=3306,user='root',password='root', database='test_cases', charset='utf-8')
File "C:\Users\mihxy\PycharmProjects\venv\lib\site-packages\pymysql\connections.py", line 311, in __init__
self.encoding = charset_by_name(self.charset).encoding
AttributeError: 'NoneType' object has no attribute 'encoding'
原因是:charset='utf8'而不是'utf-8'
6、pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 11001] getaddrinfo failed)")
原因:连接数据库的格式没写对,或者格式内的参数错误
比如:
或者
host='127.0.0.1'写成host='127.0.01',出现这种写错
更多推荐
python3安装pymysql(pycharm工具)
发布评论