1、池 concurrent.futures
-
进程池 p = ProcessPoolExecutor(n)
-
-
实例化一个池的对象
-
-
提交任务:submit
-
获取池内进程或者线程的执行结果 result()
-
map 循环提交任务
-
add_done_callback 回调函数
2、协程的概念
-
概念:
-
本质是一个线程
-
多个任务在一个线程上切换
-
特点:数据安全,用户界别,开销小,不能利用多核,能够识别的io操作也少
-
-
gevent 第三方模块 完成一个并发的socketserver端
-
协程对象:spawn(func,参数)
-
from gevent import monkey,monkey.patch_al()
-
-
能识别的io操作也是有限的
-
-
asyncio 内置模块
-
await 写好的 asyncio中的阻塞方法
-
async 表示一个函数是一个协程函数,await语法必须用在async函数中
-
import asyncioa
sync def func():
print('await:')
await asyncio.sleep(1)
loop = asyncio.get_event_loop()
loop.run_until_complete(func())
-
二、今日内容
1、初识数据库
-
数据库在程序中的作用
2、什么是mysql
3、安装数据库
解压
下载的zip文件解压,将解压之后的文件夹放到任意目录下,这个目录就是mysql的安装目录。
配置
打开目录,会看到my-default.ini配置文件,复制这个配置文件可以重命名为my.ini或者my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:Program Filesmysql-5.6.39-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:Program Filesmysql-5.6.39-winx64data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
环境变量
在系统变量PATH后面添加: 你的mysql bin文件夹的路径(如C:Program Filesmysql-5.6.41-winx64in)
安装MySQL服务
以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,输入mysqld install回车运行
启动mysql服务
以管理员身份在cmd中输入:net start mysql
服务启动成功之后,就可以登录了,输入mysql -u root -p(第一次登录没有密码,直接按回车过)
net stop mysql # 停止mysql
#在windows操作系统上没有重启mysql服务的命令
#如果要重启服务,只能先stop再start
4、操作数据库
通过cmd连接server端
mysql -uroot -p123 -h192.168.1.12
查询当前用户:
select user();
# mysql>select user(); 查看当前登录的用户
# mysql>set password = password('123'); 给当前用户设置密码
#
# 创建一个其他用户
# create user 'guest'@'192.168.14.%' identified by '123';
# 给一个用户授权
grant 权限类型 or 数据库.* for 'guest'@'192.168.14.%';
权限类型: all 所有 select 查找 insert 写入
数据库.* 代表数据库所有表 可以单独指定表
#进入mysql客户端 $mysql mysql> select user(); #查看当前用户 mysql> exit # 也可以用q quit退出
默认用户登陆之后并没有实际操作的权限
需要使用管理员root用户登陆
$ mysql -uroot -p # mysql5.6默认是没有密码的 #遇到password直接按回车键 mysql> set password = password('root'); # 给当前数据库设置密码
创建账号
mysql> create user 'eva'@'192.168.10.%' IDENTIFIED BY '123';# 指示网段 mysql> create user 'eva'@'192.168.10.5' # 指示某机器可以连接 mysql> create user 'eva'@'%' #指示所有机器都可以连接 mysql> show grants for 'eva'@'192.168.10.5';查看某个用户的权限
远程登陆
$ mysql -uroot -p123 -h 192.168.10.3
给账号授权
mysql> grant all on . to 'eva'@'%'; mysql> flush privileges; # 刷新使授权立即生效
创建账号并授权
mysql> grant all on . to 'eva'@'%' identified by '123' mysql的账号操作
-
和用户权限相关的
-
基本操作
desc userinfo; 查看表内字段
-
操作文件夹(库) 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 删除: drop database db1;
-
操作文件(表) 先切换到文件夹下:use db1 增:create table t1(id int,name char); create table userinfo(id int,name char(20)); 查:show tables; 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 删:drop table t1;
-
操作文件中的内容(记录) 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 查:select * from t1; 改:update t1 set name='sb' where id=2; 删:delete from t1 where id=1;
清空表: delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,
*auto_increment 表示:自增