MySQL Client

Django

狂风中的少年 提交于 2020-12-04 23:54:01
环境 Deepin Linux 15.11 Django 2.2 pymysql0.9.3 原因 因为用pymysql替换了默认的mysqlclient,Django官方推荐的数据库API driver是mysqlclient。 https://docs.djangoproject.com/en/2.2/ref/databases/#mysql-db-api-drivers 解决方法1 使用mysqlclient,去除pymysql 不要用 pymysql 。用mysqlclient。 安装方法: https://github.com/PyMySQL/mysqlclient-python#install 解决方法2 仍然使用pymysql 2.1 配置文件的目录中_ init_ .py中有如下代码 import pymysql pymysql.install_as_MySQLdb() # 这是一个hack,为了在Djano中替代默认的mysqlclient。mysqlclient官方描述:This is a fork of MySQLdb1 2.2 点进去install_as_MySQLdb 找到version_info变量,改成 version_info = (1, 3, 13, "final", 0) 2.3 改变django.db.backends.mysql

django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

依然范特西╮ 提交于 2020-12-04 23:53:36
报错环境 python=3.6.5,django=2.2,PyMySQL=0.9.3 …… django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. 解决方法: Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql,使用 pip install pymysql 进行安装,然后在工程文件__init__.py添加以下代码即可。 #安装pymysql pip install pymysql #__init__.py import pymysql pymysql . install_as_MySQLdb ( ) 第一种: django降到2.1.4版本就OK了 第二种(仍使用django 2.2版本): #找到Python环境下 django包,并进入到backends下的mysql文件夹 cd /opt/anaconda3/envs/envAGC_Mini/lib/python3.6/site-packages/django/db/backends/mysql #文件列表如下 # 找到base.py文件,注释掉 base.py 中如下部分(35/36行)

访问权限控制系统|全方位认识 mysql 系统库

巧了我就是萌 提交于 2020-12-04 15:53:46
在上一期《权限系统表|全方位认识 mysql 系统库》中,我们针对mysql 系统库中的权限表做了一个简单的认识,本期我们将在上一期的基础上详细介绍MySQL 的访问权限控制系统,下面请跟随我们一起开始 mysql 系统库的系统学习之旅吧。 1、访问权限控制系统概述 什么是访问权限控制系统? MySQL的mysql 系统库提供了user、db、tables_priv、columns_priv、procs_priv、proxies_priv几张表用于存放不同权限范围的用户帐号相关的数据,这些表共同组成了MySQL 的访问权限系统。 MySQL权限系统的主要功能是对从给定主机连接到MySQL Server的用户进行身份验证,并校验该用户在该Server中的数据库对象访问的权限(如SELECT,INSERT,UPDATE和DELETE),另外,还包括管理匿名用户访问和授予特定的MySQL权限的功能(如执行 LOAD DATA INFILE 语句和管理操作权限等)。 MySQL访问权限系统的用户界面由几个SQL语句组成:如CREATE USER、GRANT和REVOKE。 在Server内部,MySQL 将权限信息存储在mysql数据库的权限表中。MySQL Server在启动时将这些表的内容读入内存,后续针对用户的访问控制决策基于权限表的内存副本实现。

访问权限控制系统|全方位认识 mysql 系统库

喜夏-厌秋 提交于 2020-12-04 15:03:55
在上一期《权限系统表|全方位认识 mysql 系统库》中,我们针对mysql 系统库中的权限表做了一个简单的认识,本期我们将在上一期的基础上详细介绍MySQL 的访问权限控制系统,下面请跟随我们一起开始 mysql 系统库的系统学习之旅吧。 1、访问权限控制系统概述 什么是访问权限控制系统? MySQL的mysql 系统库提供了user、db、tables_priv、columns_priv、procs_priv、proxies_priv几张表用于存放不同权限范围的用户帐号相关的数据,这些表共同组成了MySQL 的访问权限系统。 MySQL权限系统的主要功能是对从给定主机连接到MySQL Server的用户进行身份验证,并校验该用户在该Server中的数据库对象访问的权限(如SELECT,INSERT,UPDATE和DELETE),另外,还包括管理匿名用户访问和授予特定的MySQL权限的功能(如执行 LOAD DATA INFILE 语句和管理操作权限等)。 MySQL访问权限系统的用户界面由几个SQL语句组成:如CREATE USER、GRANT和REVOKE。 在Server内部,MySQL 将权限信息存储在mysql数据库的权限表中。MySQL Server在启动时将这些表的内容读入内存,后续针对用户的访问控制决策基于权限表的内存副本实现。

django 连接mysql

依然范特西╮ 提交于 2020-12-03 22:47:48
1、新建一个mysite项目:django-admin startproject mysite 2、进入项目目录,新建一个app : python manage.py startapp polls 3、安装mysqlclient :pip install mysqlclient 4、在settings.py database中设置数据库连接配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'my_web', 'USER': 'root', 'PASSWORD': 'password', 'HOST': '127.0.0.1', 'PORT': '3306', } } 5、执行命令: python manage.py migrate 在数据库中自动创建web系统使用到的表 6、编辑polls/models.py文件内容 from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model):

pycharm连接mysql数据库

和自甴很熟 提交于 2020-11-27 07:34:09
1.设置pycharm   pycharm默认字体很小12,修改成18,在setting中搜索font,设置字体大小。   设置pycharm的快捷键为visual studio      配置django环境settings.py    LANGUAGE_CODE = ' zh-hans ' TIME_ZONE = ' Asia/Shanghai ' USE_I18N = True USE_L10N = True USE_TZ = False zh-hans是django2只用的中文语音包,时区使用 'Asia/Shanghai',世界时间 USE_TZ 使用否False 2. 创建mysql数据库 3. 设置mysql配置      使用vs的快捷键 ctrl + alt + f 格式化代码,这样就不用手动去调整空格或者空两行之类的了       DATABASES = { ' default ' : { ' ENGINE ' : ' django.db.backends.mysql ' , ' NAME ' : ' mxonline ' , ' USER ' : ' root ' , ' PASSWORD ' : ' root ' , } } name是数据库,user是用户名,host和por都可以留空,为默认。左边的键名必须为全大写。之前我有次把USER写成了User

navicat premiun连接mysql数据库报错,错误代码:1251

ぐ巨炮叔叔 提交于 2020-11-23 05:27:01
今天在电脑上安装了 Mysql 8.0.11 ,然后想用 Navicat Premium 连接数据库,结果报错了: error 1251:client does not support authentication protocol requested by server:consider upgrading mysql client 原因是: mysql8 之前的版本中加密规则是 mysql_native_password, 而在 mysql8 之后 , 加密规则是 caching_sha2_password, 所以解决问题方法有两种: 方法 1 :升级 navicat 驱动; 方法 2 :把 mysql 用户登录密码加密规则还原成 mysql_native_password. 我用方法 2 解决,具体操作步骤如下: 1 、打开命令行 dos ,进入 MySQL 的 bin 目录,然后输入 mysql -u root -p ,输入密码; 或者直接在打开 mysql 命令行,输入密码 2 、然后在“ mysql> ”后输入 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; # 修改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED

【Django】ORM操作数据库

荒凉一梦 提交于 2020-11-22 07:09:06
一、Django数据库配置 映射关系:   表名 -------------------->类名   字段-------------------->属性   表记录----------------->类实例化对象 ORM的两大功能:   操作表:     - 创建表     - 修改表     - 删除表   操作数据行:     - 增 删 改 查 ORM利用mysqlclient 或pymysql第三方工具链接数据库 Django默认的是sqlite数据库 1、settings.py 配置 DATABASES = { ' default ' : { ' ENGINE ' : ' django.db.backends.mysql ' , ' NAME ' : ' django_orm ' , # 数据库名称 ' USER ' : ' root ' , # 数据库用户名 ' PASSWORD ' : ' root ' , # 数据库密码 ' HOST ' : '' , # 数据库主机,留空默认为localhost 即127.0.0.1 ' PORT ' : ' 3306 ' , # 数据库端口 } } 2、在项目文件夹下 __init__.py 导入pymysql(可选) 也可以使用mysqlclient连接数据库,mysqlclient底层用C语言编写的数据库封装,执行效率较高

mysql group by 报错 ,only_full_group_by 三种解决方案

旧街凉风 提交于 2020-11-15 17:58:52
报错信息 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database.table.column' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 翻译过来就是在group by 的地方有一些列是没有包括进去的 具体问题具体分析,我这里的问题是:select 的时候使用了TIMESTAMPDIFF 中的两个列名并没有包括在group by 中 mysql 5.7以后的版本数据库的默认模式设置成了 only_full_group_by 模式,而在执行的sql里有一些重复的行group by 的时候mysql 不知道选择哪一个行 错误实例 1: SELECT ifnull( sum( checkTime ) / count( 1 ), 0 ) AS time FROM ( SELECT TIMESTAMPDIFF( MINUTE, CreateTime, EndTime ) AS checkTime FROM statistics_report WHERE

Python 访问 MySQL 这件小事

限于喜欢 提交于 2020-10-26 23:43:39
前言 一般,在代码中连接并访问某个数据库服务,都需要通过一个特定于语言和数据库的驱动(或者叫连接器、binding(绑定)),在 Python 世界叫 Python Database API,简称 DB-API。MySQL 数据库几乎是国内互联网公司的标配。本来用 Python 访问数据库是件很简单的小事,你百度或 Google 就会发现好几种选择,但这些网络博客由于年久失修,会让新手走进坑里。即使不踩坑,用一段时间后,你也会产生疑惑。本文比较全面的盘点了各种 Python 访问 MySQL 的姿势,并给出最佳实践,希望能解决你的疑惑,帮助让你少踩坑,或者从坑里跳出来。 Python 2 时代的 MySQL-python\MySQLdb MySQL-python 又叫 MySQLdb,前者是它的包名,后者是它的接口名。是 Python2 时代访问 MySQL 的主流姿势。你现在搜索都能看到很多相关的博文。但几乎都会把你带进坑里。MySQLdb 只适用于 MySQL 3.23~5.5,以及 Python 2.4~2.7,现在已经不能用了。在 Linux 平台可以顺利安装,在 Windows 平台安装比较麻烦,连官方都不愿意写教程,在 Mac OS 上虽然可以安装,但是使用时可能会出现导入包不成功的 bug。 所以现在强烈不建议你使用 MySQL-python,见到它最好绕道走。