一、背景
python因简洁的语言及丰富的拓展包,对大数据处理具有独特的优势,在信号处理过程中涉及了大量的数据文件,一般采用数据库软件(如MySQL)获取原始数据及存储处理结果,那么如何实现python和数据库软件之间的数据传递呢?下面我们介绍通过python的pyMySQL模块进行MySQL数据库连接演示。
二、内容简介
本章主要讲解python连接MySQL方法,并通过数据库管理软件Navicate对连接结果进行演示验证,同时解决Navicate连接MySQL会出现的异常。在演示验证过程中。对Python、MySQL和Navicate的安装、设置等相关内容不是本章重点,未予介绍。
三、主要内容
3.1 python连接MySQL方法
表3.1 程序流程 |
---|
- 导入数据库连接模块
- 设置连接节点
- 进入MySQL软件
3.1 创建表格
3.2 输入数据
# 1. 导入数据库连接模块
import pyMySQL
# 2. 设置连接节点
connection = pyMySQL.connect(host='localhost',
user='root',
password='password',
db='test')
# 3. 进入MySQL软件
with connection.cursor() as cur:
# 3.1 创建表格
cur.execute('create table if not exists writers(Id int primary key auto_increment, Name varchar(20))')
# 3.2 输入数据
cur.executemany("insert into writers(Name) values(%s)", (('Wuli'), ('pengchen')))
3.2 Navicate验证
在连接数据库之后,采用Navicate软件连接MySQL数据库,对python是否成功连接数据库进行验证。如图3.1所示。
3.3 Navicate连接MySQL出错
使用Navicat Premium 连接MySQL时会出现2059错误。这是由于MySQL8之前的版本中加密规则是MySQL_native_password,而在MySQL8之后,加密规则是caching_sha2_password。解决方式是更改MySQL加密规则。具体方式为打开MySQL的Command Line Client,然后按步骤输入以下代码。
# 1. 更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# 2. 更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
# 3. 刷新权限
FLUSH PRIVILEGES;