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 pymysqlmysql_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_schemasys
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')) # 插入https://common.cnblogs.com/editor/tiny_mce/plugins/uploadImage/img/img.gif多条(元祖形式) 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 redisimport sysimport time# 得到默认编码print(sys.getdefaultencoding())# 连接redisre = 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())# 设置过期时间为3sre.set('name','祖国',ex=3)time.sleep(3)#打印过期后ttlprint(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'))# 删除序列的值cre.lrem('test_list','c',0)# 设置hash 值re.hmset('userkey',{'name':'jianeng','age':'18'})print(re.hgetall('userkey'))
打印结果
utf-815祖国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终端输出中文