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

import pymysql
mysql_connect_dict={
'host':'127.0.0.1',
'port':3333,
'user':'jianeng',
'password':'qwe123',
'db':'info',
'charset':'utf8'
}
# 连接数据库
conn = pymysql.connect(**mysql_connect_dict)
# 指定以dict形式返回,默认以元祖形式
#conn = pymysql.connect(**mysql_connect_dict,cursorclass=pymysql.cursors.DictCursor)
print(conn)

6. 访问mysql

1. 查询记录

# 创建游标
cursor = conn.cursor()
# sql查询语句
sql = "show databases"
# 执行sql,得到行数
row = cursor.execute(sql);
print('%s条数据'%row)
# 返回一条记录(元祖形式)
one = cursor.fetchone();
print(one)
# 返回多条记录(元祖形式)
many = cursor.fetchmany(3)
print(many)
# 返回所有记录(元祖形式)
all = cursor.fetchall()
print(all)
#循环输出
for al in all:
print(*al)

打印结果

6条数据
('information_schema',)
(('info',), ('mydb',), ('mysql',))
(('performance_schema',), ('sys',))
#循环结果
performance_schema
sys

2. 删除、创建表

   dr_table ='drop table `user`'
# 删除表
cursor.execute(dr_table) cr_table ='''create table if not exists user(
id int primary key auto_increment,
username varchar(20) not null,
password varchar(20) not null
)
'''
# 创建表
cursor.execute(cr_table)

3. 插入记录

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

打印结果

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

4. 修改记录

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

打印结果

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

5. 删除记录

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

打印结果

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

7. 访问redis

import redis
import sys
import time
# 得到默认编码
print(sys.getdefaultencoding())
# 连接redis
re = redis.Redis(host='127.0.0.1', password='qwe123',port=5555) # 设置name值
re.set('name',15)
print(type(re.get('name')))#byte类型(utf8格式16进制字节码)
if isinstance(re.get('name'), bytes):
# 字节码转换为字符串
print(re.get('name').decode('utf8')) re.set('name','祖国')
# decode默认为utf8格式解码
print(re.get('name').decode()) # 设置过期时间为3s
re.set('name','祖国',ex=3)
time.sleep(3)
#打印过期后ttl
print(re.ttl('name'))
# 设置多个属性
re.mset(name='佳能',age='18')
print(re.mget('name','age')) # 设置递增
re.incr('age')
print(re.get('age'))
re.incr('age',10)
print(re.get('age'))
# 删除序列的值c
re.lrem('test_list','c',0)
# 设置hash 值
re.hmset('userkey',{'name':'jianeng','age':'18'})
print(re.hgetall('userkey'))

打印结果

utf-8
<class 'bytes'>
15
祖国
None
[b'\xe4\xbd\xb3\xe8\x83\xbd', b'18']
b'19'
b'29'
{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. C++ 内存分配(new,operator new)面面观 (转)

    本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用. 一 new ...

  2. MySQL操作中的一些细节及良好习惯--------持续更新中...

    1.尽量不要写太过复杂的SQL查询,不要想着非要一次性将结果全部以前端要求的形式返回出来,可以多次分开查询,这样逻辑清晰,问题解决速度快,方便维护,并且SQL的效率也高. 2.在使用联表查询的时候,关 ...

  3. 携程Apollo(阿波罗)配置中心在.NET Core项目快速集成

    .NET Core的支持文档大体上可以参考文档.Net客户端使用指南:https://github.com/ctripcorp/apollo/wiki/.Net%E5%AE%A2%E6%88%B7%E ...

  4. Visual Studio Code 调整字体大小

    { "editor.fontSize": 14, "window.zoomLevel": 1, } // 将设置放入此文件中以覆盖默认设置 { , , #代码字 ...

  5. MySQL中的内置系统函数

    一.字符串函数  1. CONCAT(S1,S2....SN): 把传入的参数连接成一个字符串  2. INSERT(str, x, y, insert): 将字符串 X位置开始,y个字符串长度替换为 ...

  6. DML、DDL、DCL的区别

    DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL( ...

  7. ubuntu16 ftp 服务 vsftp 配置

    转载:沐心_ 地址:http://bbs.csdn.net/topics/392186116------------------------------------------------------ ...

  8. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)

    第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 为Domain Model添加约束 前一部分, 我们已经把数据库创建出来了. 那么我们先看看这个数据库 ...

  9. qt 字符数组如何转换字符串?

    char 字符数组如何转换成 QString? char source{1024} = {0}; QString des = QString::fromLocal8Bit(source);

  10. uva 116 单向TSP

    这题的状态很明显. 转移方程就是 d(i,j)=min(d(i+1,j+1),d(i,j+1),d(i-1,j+1)) //注意边界 我用了一个next数组方便打印结果,但是一直编译错误,原来是不能用 ...