前言:
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',出现这种写错

















