python操作本地数据库,Python基础篇-Python连接Mysql操作数据库

本文讲述了在Mac系统中配置Python环境以连接MySQL数据库时遇到的兼容性问题,主要是由于MySQL8.0的加密方式改变导致Navicate无法连接。解决方案是通过修改MySQL用户认证方式为旧版密码加密。此外,还展示了如何安装pymysql模块,并给出了Python连接数据库和执行SQL查询的示例代码。
摘要由CSDN通过智能技术生成

环境配置

Python是出了名的方便,但是在mac下搭建python访问 mysql 数据库的环境时还真碰到不少问题。

mysql 安装

mysql 安装简单需要注意:

连接MySQL出现报错client does not support authentication protocol requested by server consider

执行以下代码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

其中password需要改成你自己的密码,大概原因是MySQL8.0的加密方式改变了,但是比较老版本的navicate没有来得及支持,因此需要将mysql设置为支持传统的那种密码加密,如果用比较低版本的MySQL,比如MySQL57应该就不会出现这种问题。

FLUSH PRIVILEGES;

pymysql 模块安装

sudo pip install pymysql

sudo pip install MySQLdb

代码编写

#!/usr/bin/python3

# -*- coding: UTF-8 -*-

import pymysql

# 打开数据库连接

db = pymysql.connect("127.0.0.1", "root", "password", "python_statistics", charset='utf8')

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

cursor=db.cursor()

#使用execute方法执行SQL语句

cursor.execute("select * from phone_communication_order limit 10")

#使用 fetchone 方法获取一条数据

data = cursor.fetchone()

#输出查询结果

print(data)

#关闭数据源

db.close()

115e2159c92a

image.png

建表语句

/*

Navicat Premium Data Transfer

Source Server : local_本地

Source Server Type : MySQL

Source Server Version : 80017

Source Host : localhost

Source Database : python_statistics

Target Server Type : MySQL

Target Server Version : 80017

File Encoding : utf-8

Date: 08/26/2019 21:16:40 PM

*/

SET NAMES utf8;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for `phone_communication_order`

-- ----------------------------

DROP TABLE IF EXISTS `phone_communication_order`;

CREATE TABLE `phone_communication_order` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',

`dial_date` datetime NOT NULL,

`dial_channel` varchar(255) DEFAULT NULL,

`phone_num` varchar(255) DEFAULT NULL,

`phone_bind_num` int(11) DEFAULT NULL,

`efficacious_communicate` varchar(255) DEFAULT NULL,

`communication_landlord` int(11) DEFAULT NULL,

`order_count_7` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=48080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

SET FOREIGN_KEY_CHECKS = 1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值