python 中,连接mysql一般都推荐用pymysql ,而且在django中,网上的教程都是这么连接mysql的.

import pymysql

pymysql.install_as_MySQLdb()

这实际是pymysql模块调用了模块中的一个函数 install_as_MySQLdb(),这个函数的注释是这么说的.

After this function is called, any application that imports MySQLdb or
_mysql will unwittingly actually use pymysql.

大概意思是:

  调用此函数后,任何导入MySQLdb或_mysql的应用程序都会在不经意间实际使用pymysql。

最近在使用Django 3.0 中, 导入 Pymsql的时候报错,提示Mysqlclient版本问题,.既然django 在我们选择使用MYSQL的情景时,实际自动调用的是MySQLdb, Pymysql是可有可无的,我就直接pip install 了最新版的MySQLdb, 版本号是1.4.6, 在没使用Pymysql, 也不用在settings中自己导入MySQLdb的情况下,顺利连接我的MySQL .

我本地的安装的是MySQL8.0 ,用来练习Django中的ORM操作,没有发现问题. 我还没测试过Mysql 5.6 5.7版本.估计也没问题,(注:django不支持Mysql5.6以下的版本)

看来老方法有 OUT 了的可能性.

发布出来供大家参考, 如果有版本兼容性问题,还劳烦在本帖下留言,供大家分享.

补充:

django3.0官方文档说,3.0需要mysqlclient 1.3.13或者更高版本的支持,并且mysqlclient是推荐的数据库驱动程序.

除了mysqlclient, django还可以使用Connector/Python 作为mysql的数据库驱动程序,这个驱动可以在dev.mysql.com下载. 这个驱动是Oracle提供的纯python驱动, 不需要MySQL客户端库或标准库之外的任何Python模块作为支持.

不管mysqlclient还是Connector/Python都支持线程安全和连接池特性。

Django 3.0 中连接mysql 8.0,可以不使用pymysql ,升级Mysqlclient即可的更多相关文章

  1. django 中连接mysql数据库的操作步骤

    django中连接mysql数据库的操作步骤: 1 settings配置文件中 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mys ...

  2. Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'

    Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...

  3. Odoo中连接mysql数据库

    how to integrate Odoo with MySQL - Stack Overflowhttps://stackoverflow.com/questions/31959919/how-to ...

  4. Java中连接MySql数据库的例子

    Java中连接MySql数据库的例子: package com.joinmysql.demo; import java.sql.DriverManager; import java.sql.Resul ...

  5. Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中连接MySQL数据库时Connection conn = DriverManager.getConnection(url,username,password)报错的解决办法

    开发环境: 1.系统:windows 7/8/10均可 2.jdk:1.8.0_144 3.服务器:apache-tomcat-9.0.8 4.IDE:eclipse+jsp 0.网页代码如下: &l ...

  6. Django 连接 Mysql (8.0.16) 失败

    首先,确认数据库配置正确无误: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # or use: mysql.con ...

  7. 在Django中连接MySQL数据库(Python3)

    我的环境:      python3.6,      Django2.1.5,      MySQL8.0.15,      win10,      PyCharm, 要求:已经安装了MySQL数据库 ...

  8. 用MyEclipse10.0远程连接Mysql数据库服务器

    说明:本文档所有的操作均在满足以下条件的情况下操作, A.远程Linux服务器已经安装好MySQL数据库 B.本地电脑可以ping通远程服务器 C.已经成功安装了Myeclipse 一.下载mysql ...

  9. PHP 5.6连接MySQL 8.0版本遇到的坑

    一.数据库失败Warning: mysqli_connect(): The server requested authentication method unknown to t... <?ph ...

随机推荐

  1. pywinauto教程

    转:pywinauto教程https://blog.csdn.net/weixin_40161673/article/details/83246861 ** 一.环境安装**1.命令行安装方法pip ...

  2. kaggle赛题Digit Recognizer:利用TensorFlow搭建神经网络(附上K邻近算法模型预测)

    一.前言 kaggle上有传统的手写数字识别mnist的赛题,通过分类算法,将图片数据进行识别.mnist数据集里面,包含了42000张手写数字0到9的图片,每张图片为28*28=784的像素,所以整 ...

  3. Python3中reduce和lambda的用法

    reduce() 函数将一个数据集合(iterable[, initializer])可以看出是包含了初始化数据的,且初始化数据位列第1位,即集合中的第1个元素)中的所有数据进行下列操作:先对集合中的 ...

  4. Codeforces Round #589 (Div. 2)D(思维,构造)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;vector<int>adj[10 ...

  5. bat获取当前路径

    @echo off setlocal EnableDelayedExpansion echo 当前正在运行的批处理文件所在路径:!cd! pause @echo off echo 当前目录是:%cd% ...

  6. Hash Table(散列表)

    这篇主要是基础的数据结构学习,写的时候才明白了书上说到的一些问题,由于该篇仅仅只是对这种数据结构进行一个理解,所以很基础,关于h(x)函数也只是简单的运用了除法散列,然后为了应对冲突,我用的是链接法. ...

  7. Jenkins 定时备份插件 ThinBackup

    需求 公司的整个测试环境正式环境打包都是用的同一个Jenkins, 该Jenkins是搭建在内部的一台机器上,之前有一台机器的硬盘出了问题,为了安全起见,我们决定备份 Jenkins 的配置和数据. ...

  8. jquery-ajax的用法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. C/C++网络编程4——实现基于TCP的服务器端/客户端1

    一.TCP服务器调用顺序: 调用socket函数创建套接字:声明并初始化地址信息结构体变量:调用bind函数向套接字分配地址:调用listen函数进入等待连接请求状态,只有调用了listen函数后客户 ...

  10. nginx的access的阶段的access模块、auth_basic模块、auth_request模块及satisfy指令介绍

    access 模块 示例从上向下匹配 location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; allow 200 ...