python连接mysql

MySQL家族"新"成员——MySQL Shell

我怕爱的太早我们不能终老 提交于 2020-02-27 07:22:31
本文转载自“MySQL解决方案工程师”公众号,由徐轶韬翻译 标题虽然叫做MySQL家族新成员,但如果从发布时间上来看,MySQL Shell已经不能算做新成员了,它的正式版与MySQL8.0同一天诞生,2018年4月19日,但还有很多人对它比较陌生,所以称之为“新”。在这篇文章里,我将会介绍一下它的部分功能和使用方法。 首选概括一下它的功能,MySQL Shell是一个统一的命令行客户端,使用它可以对MySQL进行管理和操作。它支持多种语言,包括JavaScript,Python和SQL,并且支持编写脚本。此外,它同时支持文档型和关系型数据库模式,并且具有完整的开发和管理API。 看到这里,您可能会发现MySQL Shell与传统的MySQL数据库的客户端mysql的区别了,旧的mysql客户端缺失了脚本功能(可能有人会说可以通过编写SQL命令进行批处理),但是想要通过脚本语言对数据库进行管理的用户会发现,并没有专门适用于合并脚本语言的工具,MySQL Shell的出现弥补了这一点。 使用MySQL Shell除了可以对数据库里的数据进行操作,还可以对数据库进行管理,特别是对Innodb Cluster的支持,使用它可以十分方便的对Innodb Cluster进行管理,配置。您可以理解为MySQL Shell就是为Innodb Cluster 而生的

Python连接MySQL数据库之pymysql模块使用

妖精的绣舞 提交于 2020-02-26 06:06:10
PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 Django中也可以使用PyMySQL连接MySQL数据库。 PyMySQL安装 pip install pymysql 连接数据库 注意事项 在进行本文以下内容之前需要注意: 你有一个MySQL数据库,并且已经启动。 你有可以连接该数据库的用户名和密码 你有一个有权限操作的database 基本使用 # 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() # 定义要执行的SQL语句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 执行SQL语句 cursor

mysql不能插入汉字或者是pyspark连接mysql输出或输入时汉字存在乱码问题

落花浮王杯 提交于 2020-02-23 18:33:43
首先,我的mysql版本为 用pyspark连接数据库进行输出某表的内容 from pyspark.sql import SparkSession if __name__ == "__main__": """ 从mysql查询数据 """ spark = SparkSession.builder.getOrCreate() url="jdbc:mysql://192.168.1.105:3306/tylg?serverTimezone=Asia/Shanghai" user="root" password="123456" # 下方如果用的是mysql-connector8.0的要用加cj,若是5.多则不用】 dirver="com.mysql.cj.jdbc.Driver" #创建数据库连接,查询所有数据 mysql_df=spark.read.format("jdbc").option("url",url).option("dirver",dirver)\ .option("dbtable","customerinfo").option("user",user).option("password",password).load() print(type(mysql_df)) mysql_df.show() 这种情况出现了乱码 付航那个是我修复好的,而下面那个的uname就是乱码

sqli-宽字节注入

*爱你&永不变心* 提交于 2020-02-18 00:03:15
0x0 背景 当某字符的大小为一个字节时,称其字符为窄字节. 当某字符的大小为两个字节时,称其字符为宽字节. 所有英文默认占一个字节,汉字占两个字节 常见的宽字节编码:GB2312,GBK,GB18030,BIG5,Shift_JIS等等 0x1 宽字节注入原理 程序员为了防止sql注入,对用户输入中的单引号(’)进行处理,在单引号前加上斜杠(\)进行转义,这样被处理后的sql语句中,单引号不再具有‘作用’,仅仅是‘内容’而已,换句话说,这个单引号无法发挥和前后单引号闭合的作用,仅仅成为‘内容‘ 【再举个例子,要找某位名字里带单引号的用户,搜索的时候,就要让单引号成为内容去搜索,而不能起到其他作用】 而安全测试人员要绕过这个转义处理,使单引号发挥作用,有两个思路: 让斜杠(\)失去作用 让斜杠(\)消失 第一个思路就是借鉴程序员的防范思路,对斜杠(\)转义,使其失去转义单引号的作用,成为‘内容’ 第二个思路就是宽字节注入 当使用宽字节编码,如:GBK时,两个连在一起的字符会被认为是汉字,我们可以在单引号前加一个字符,使其和斜杠(\)组合被认为成汉字,从未达到让斜杠消失的目的,进而使单引号发挥作用 注意:前一个字符的Ascii要大于128,两个字符才能组合成汉字 0x2 注入方法 0x21 黑盒 可以看到,在发现单引号被转义后,当我们加了%df后,sql语句报错,说明单引号发挥了作用

假期十五

我们两清 提交于 2020-02-15 23:45:52
python连接mysql def mysql_(): conn = pymysql.connect(host='127.0.0.1', user='用户名', passwd='密码', db='数据库', port=3306, charset='utf8', cursorclass=pymysql.cursors.DictCursor) cur = conn.cursor() return conn,cur if __name__=="__main__": conn,cur=mysql_() select_sql="select 列名 from 表名" cur.execute(select_sql) domain_list=cur.fetchall() for i in domain_list: print(i) 来源: https://www.cnblogs.com/jbwen/p/12315148.html

Django---Django连接Mysql数据库

限于喜欢 提交于 2020-02-14 18:13:59
  前面介绍了Django平台的数据交互,这些数据都是在本地存放着,修改内容或者重新启动服务,数据就消失了,如果我们把数据存放在数据库中,不就保存了吗? Django数据库 Django中自带的也有数据库(sqlite3),自带的轻量级数据库sqlite3,已经完全够了,当然大家都很数据Mysql数据库,我们也可以通过Django连接Mysql数据库 连接Mysql数据库 在文件settings,py文件下中找到以下配置信息,该信息为连接默认数据库(sqlite3) # 连接数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } 如果想要连接Mysql数据库,我们可以进行修改成以下参数 # 配置MYsql数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', # 数据库名称, 'HOST': 'localhost', # 主机地址 'USER': 'root', # 数据库用户 'PASSWORD': '821006052', # 密码 'PORT': 3306 #

Mysql数据库基础知识

给你一囗甜甜゛ 提交于 2020-02-14 05:30:22
什么是Mysql数据库 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 mysql是什么 mysql就是一个基于socket编写的C/S架构的软件 客户端软件 mysql自带:如mysql命令,mysqldump命令等 python模块:如pymysql View Code 数据库管理软件分类 分两大类:  关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用  非关系型:mongodb,redis,memcache 可以简单的理解为: 关系型数据库需要有表结构 非关系型数据库是key-value存储的,没有表结构 View Code Navicat软件 这个软件对MySQL特别友好,是一套适用于MySQL,SQLLite等多个数据库系统的图形化数据库管理,报告以及兼通的工具。 通过这个软件,我们可以演练创建/删除表,查询/删除/修改记录操作的SQL 什么是SQL? 什么是SQL? SQL(structured query language)

Python3 MySQL 数据库连接 - PyMySQL 驱动

不想你离开。 提交于 2020-02-10 21:25:06
什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 PyMySQL 安装 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。 PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。 如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL: $ pip install PyMySQL 数据库连接 db = pymysql.connect( host = "localhost", user = "root", password = "root", port = 3306, database = "mails" ) 数据库操作 # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 定义sql语句 sql = "select * from mail" # 使用 execute() 方法执行 SQL 查询 cursor.execute(sql) # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone()

python连接数据库出现pymysql pymysql.err.OperationalError 1045 Access denied错误的解决办法

戏子无情 提交于 2020-02-08 12:21:11
工具:python3.6+mysql8.0+pymysql 注意:python2.7以后的版本不再支持 MySQLdb这个模块。需要用pymysql,在命令行下安装的方法 输入pip install pymysql。 import pymysqlconn = pymysql.Connect( host='127.0.0.1', port=3306, user='root', passwd='root', db='imooc', charset='utf8')cursor = conn.cursor()sql = 'select * from students'# print(cursor)cursor.execute(sql)print(cursor.fetchall())cursor.close()conn.close()执行这段代码出错 : pymysql.err.OperationalError: (1045, u"Access denied for user 'root'@'localhost' (using password: No)") 新版mysql使用的caching_sha2_password认证方式,换成mysql_native_password就可以。 步骤是在cmd命令行连接mysql, 然后输入ALTER USER 'root'@'localhost'

python3连接MySQL数据库,并执行数据库的基本增删改查操作

青春壹個敷衍的年華 提交于 2020-02-08 07:47:33
本篇为python连接数据库的详细说明,如果继续用python连接数据库,请看这篇模板文章 python3连接MySQL数据库模板 python3连接MySQL数据库我们需要安装pymysql pip install pymysql 安装好后直接 import pymysql 就可以导入第三方库 连接数据库 conn = pymysql . connect ( host = "localhost" , # 指示host表明是本地MySQL还是远程 user = "root" , # 用户名 password = "root" , # 密码 db = "db4" , # 要连接的数据库名 charset = "utf8mb4" , # 指定字符集,可以解决中文乱码 cursorclass = pymysql . cursors . DictCursor # 固定写法,类似于jdbc里边的加载驱动 ) 数据库增删改查(简单写法) 在连接了数据库之后我们就要进行数据库的增删改查 """ 查 """ sql = "select * from user" cursor = conn . cursor ( ) # 创建一个名为cursor的指针对象 result = cursor . execute ( sql ) # 执行查询操作,返回的result是受影响的行数 data = cursor