1. 修改mysql配置文件

修改bind-address=0.0.0.0(允许通过远程网络连接)

2. 修改redis配置文件

修改bind-address=0.0.0.0(允许通过远程网络连接),设置密码qwe123

3. 下载访问包pymysql和redis

4. 设置端口转发mysql和redis

5. 导入包pymysql连接mysql

  1. import pymysql
  2. mysql_connect_dict={
  3. 'host':'127.0.0.1',
  4. 'port':3333,
  5. 'user':'jianeng',
  6. 'password':'qwe123',
  7. 'db':'info',
  8. 'charset':'utf8'
  9. }
  10. # 连接数据库
  11. conn = pymysql.connect(**mysql_connect_dict)
  12. # 指定以dict形式返回,默认以元祖形式
  13. #conn = pymysql.connect(**mysql_connect_dict,cursorclass=pymysql.cursors.DictCursor)
  14. print(conn)

6. 访问mysql

1. 查询记录

  1. # 创建游标
  2. cursor = conn.cursor()
  3. # sql查询语句
  4. sql = "show databases"
  5. # 执行sql,得到行数
  6. row = cursor.execute(sql);
  7. print('%s条数据'%row)
  8. # 返回一条记录(元祖形式)
  9. one = cursor.fetchone();
  10. print(one)
  11. # 返回多条记录(元祖形式)
  12. many = cursor.fetchmany(3)
  13. print(many)
  14. # 返回所有记录(元祖形式)
  15. all = cursor.fetchall()
  16. print(all)
  17. #循环输出
  18. for al in all:
  19. print(*al)

打印结果

  1. 6条数据
  2. ('information_schema',)
  3. (('info',), ('mydb',), ('mysql',))
  4. (('performance_schema',), ('sys',))
  5. #循环结果
  6. performance_schema
  7. sys

2. 删除、创建表

  1. dr_table ='drop table `user`'
  2. # 删除表
  3. cursor.execute(dr_table)
  4. cr_table ='''create table if not exists user(
  5. id int primary key auto_increment,
  6. username varchar(20) not null,
  7. password varchar(20) not null
  8. )
  9. '''
  10. # 创建表
  11. cursor.execute(cr_table)

3. 插入记录

  1. # 插入数据
  2. insertsql ='insert into user (username, password) VALUES (%s,%s)'
  3. cursor.execute(insertsql,('zhangsan','123'))
  4. # 插入多条(元祖形式)
  5. cursor.executemany(insertsql,[('王五','qwq'),('赵四','123'),('千8','123')])
  6. # 提交数据
  7. conn.commit();
  8. # sql查询语句
  9. selectsql = "select * from user "
  10. # 执行sql,得到行数
  11. row = cursor.execute(selectsql);
  12. print('返回%s条数据'%row)
  13. # 返回所有记录(元祖形式)
  14. select_all = cursor.fetchall();
  15. print("select=",select_all)

打印结果

  1. #返回4条数据
  2. select= ((1, 'zhangsan', '123'), (2, '王五', 'qwq'), (3, '赵四', '123'), (4, '千8', '123'))

4. 修改记录

  1. # 更新数据
  2. updatesql='update user set username = %s where id=%s'
  3. cursor.execute(updatesql,('张三','2'))
  4. # 更新多条(元祖形式)
  5. l = []
  6. for x in range(1, 4):
  7. l.append(('李%s'%x,str(x)))
  8. cursor.executemany(updatesql,l)
  9. # 提交数据
  10. conn.commit();
  11. # 执行sql,得到行数
  12. row = cursor.execute(selectsql);
  13. print('返回%s条数据'%row)
  14. # 返回所有记录(元祖形式)
  15. select_all = cursor.fetchall();
  16. print("select=",select_all)

打印结果

  1. #返回4条数据
  2. select= ((1, '李1', '123'), (2, '李2', 'qwq'), (3, '李3', '123'), (4, '千8', '123'))

5. 删除记录

  1. # 删除语句
  2. deletesql='delete from user where id=%s'
  3. cursor.execute(deletesql, 1)
  4. # 删除多条
  5. cursor.executemany(deletesql,[(2,),(3,)])
  6. # 提交数据
  7. conn.commit()

打印结果

  1. #返回1条数据
  2. select= ((4, '千8', '123'),)

7. 访问redis

  1. import redis
  2. import sys
  3. import time
  4. # 得到默认编码
  5. print(sys.getdefaultencoding())
  6. # 连接redis
  7. re = redis.Redis(host='127.0.0.1', password='qwe123',port=5555)
  8. # 设置name值
  9. re.set('name',15)
  10. print(type(re.get('name')))#byte类型(utf8格式16进制字节码)
  11. if isinstance(re.get('name'), bytes):
  12. # 字节码转换为字符串
  13. print(re.get('name').decode('utf8'))
  14. re.set('name','祖国')
  15. # decode默认为utf8格式解码
  16. print(re.get('name').decode())
  17. # 设置过期时间为3s
  18. re.set('name','祖国',ex=3)
  19. time.sleep(3)
  20. #打印过期后ttl
  21. print(re.ttl('name'))
  22. # 设置多个属性
  23. re.mset(name='佳能',age='18')
  24. print(re.mget('name','age'))
  25. # 设置递增
  26. re.incr('age')
  27. print(re.get('age'))
  28. re.incr('age',10)
  29. print(re.get('age'))
  30. # 删除序列的值c
  31. re.lrem('test_list','c',0)
  32. # 设置hash 值
  33. re.hmset('userkey',{'name':'jianeng','age':'18'})
  34. print(re.hgetall('userkey'))

打印结果

  1. utf-8
  2. <class 'bytes'>
  3. 15
  4. 祖国
  5. None
  6. [b'\xe4\xbd\xb3\xe8\x83\xbd', b'18']
  7. b'19'
  8. b'29'
  9. {b'name': b'jianeng', b'pwd': b'123', b'age': b'18'}

redis终端输出中文

python访问mysql和redis的更多相关文章

  1. 06 python操作MySQL和redis(进阶)

    python操作mysql.redis 阶段一.mysql事务 主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息, ...

  2. Python访问MySQL(1):初步使用PyMySQL包

    Windows 10家庭中文版,MySQL 5.7.20 for Win 64,Python 3.6.4,PyMySQL 0.8.1,2018-05-08 ---- 使用Python访问MySQL数据 ...

  3. python访问mysql

    1,下载mysql-connector-python-2.0.4  pythoin访问mysql需要有客户端,这个就是连接mysql的库 解压后如下图: 双击lib 以windows为例 把mysql ...

  4. 利用Python访问Mysql数据库

    首先要明确一点,我们在Python中需要通过第三方库才能访问Mysql. 有这样几种方式:Mysql-python(即MySQLdb).pymysql.mysql-connector.Mysql-py ...

  5. Python访问MySQL数据库并实现其增删改查功能

    概述:对于访问MySQL数据库的操作,我想大家也都有一些了解.不过,因为最近在学习Python,以下就用Python来实现它.其中包括创建数据库和数据表.插入记录.删除记录.修改记录数据.查询数据.删 ...

  6. python学习道路(day12note)(mysql操作,python链接mysql,redis)

    1,针对mysql操作 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 设置密码 update user set password ...

  7. python 数据库mysql、redis及发送邮件

    python 关系型数据库链接使用--mysql import pymysql # 引用mysql模块 # 创建连接,指定数据库的ip地址,账号.密码.端口号.要操作的数据库.字符集coon = py ...

  8. Python访问MySQL数据库

    #encoding: utf-8 import mysql.connector __author__ = 'Administrator' config={'host':'127.0.0.1',#默认1 ...

  9. 【数据库】python访问mysql

    import MySQLdb 所有的数据库遵循相同的python database API 需要建立connection对象连接数据库,之后建立cursor对象处理数据. conn = MySQLdb ...

随机推荐

  1. msp430系统时钟

    转自 http://m.blog.csdn.net/blog/msdumin/38441493# MSP430基础时钟模块包含以下3个时钟输入源. 一.4个时钟振荡源 1.LFXT1CLK:  外部晶 ...

  2. Hive metastore整体代码分析及详解

    从上一篇对Hive metastore表结构的简要分析中,我再根据数据设计的实体对象,再进行整个代码结构的总结.那么我们先打开metadata的目录,其目录结构: 可以看到,整个hivemeta的目录 ...

  3. 《Discuz安装时候出现乱码 -- 问题解决方法》

    自我安装discuz时出现安装界面乱码的情况,跟链接所说一样,经过原作的分享,加上我自己的实验,明白了,什么时候修改/usr/local/php/etc/php.ini里面的default_chars ...

  4. ajax上传图片chrome报错net::ERR_CONNECTION_RESET/net::ERR_CONNECTION_ABORTED

    网上搜了一下,base64图片太大,tomcat对post请求大小有默认限制,要在tomcat配置文件server.xml 加一个:maxPostSize="0",0表示无限制 & ...

  5. lasy load图片的实现

    无意中看到了这篇关于使用LQIP(Low Quality Image Placeholders) 原文链接,方案实现图片加载优化方案.在此实践一把. 1. 方案实现 页面初始化时,img元素初始化时, ...

  6. java11 - GUI图形用户界面编程

    一.JavaSwing界面设计参考教程 二.布局管理器 三.绝对布局 import java.awt.Color; import java.awt.event.ActionEvent; import ...

  7. CodeForces - 551C 二分+贪心

    题意:有n个箱子形成的堆,现在有m个学生,每个学生每一秒可以有两种操作: 1: 向右移动一格 2: 移除当前位置的一个箱子 求移除所有箱子需要的最短时间.注意:所有学生可以同时行动. 思路:二分时间, ...

  8. mongodb Decimal Spring data mongodb Decimal128 SpringMvc 序列化字符串 json converter

    Mongodb 3.4 就开始支持Decimal 类型,解决double的精度问题,但是不太好用,MapReduce的时候Array.sum 也不能计算 Decimal.比较坑,但是聚合可以用 Spr ...

  9. easywechat--在thinkPHP5中的使用

    1. 安装 1.1 v-4.0 版本要求 PHP版本在7.0以上 1.2 在项目目录下运行以下命令 若未安装composer,则先安装composer -> http://docs.phpcom ...

  10. shiro整合ehcache

    目标:让Shiro整合ehcache,提供缓存realm数据的功能. 1.引入encache配置文件,配置缓存 <!-- <ehcache xmlns:xsi="http://w ...