MySQL的卸载流程
1、先停止MySQL服务:右键“此电脑”,选择“管理”,之后选择“服务和应用程序”–“服务”,在服务中找到“MySQL”,右键选择“停止”。
2、找到“控制面板”–“程序和功能”,找到MySQL,右键单击选择“卸载”。
3、在C盘找到program files(X86)以及programdata两个文件夹,再分别在这两个文件夹下找到MySQL相关的文件夹,把MySQL相关的文件夹全部删掉。(默认的MySQL是存储在这两个文件夹下的,此处要根据你安装时定义的安装目录进行查找,也可以全盘搜索MySQL进行相关删除)。
4、使用win+R快捷键在运行框里输入“regedit”,进入注册表,根据下面这三条路径删除MySQL相关的文件(夹)。
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL
Windows安装MySQL
1、下载安装包:
# 地址:https://downloads.mysql.com/archives/community/
# 将下载的压缩包解压
# 在bin目录同级下创建一个文件,命名为my.ini
# 在bin目录同级下创建一个文件夹,命名为data[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 ---这里输入你安装的文件路径---- basedir=D:MYSQL 5.7mysql-5.7.15-winx64mysql-5.7.15-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:MYSQL 5.7mysql-5.7.15-winx64mysql-5.7.15-winx64data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8
# 来到mysql解压后的bin路径下(以管理员身份运行) # 安装mysql 安装完成后Mysql会有一个随机密码(记住这个密码) mysqld --initialize --console # 把mysql创建成系统服务 mysqld --install mysql # 启动mysql服务 net start mysql
# 创建系统服务 sc create mysql binpath= "D:mysql-8.0.28-winx64mysql-8.0.28-winx64binmysqld --defaults-file=D:mysql-8.0.28-winx64mysql-8.0.28-winx64\my.ini" start= auto displayname= "mysql8" # sc create mysql binpath= "D:mysql-8.0.28-winx64mysql-8.0.28-winx64binmysqld" # 删除系统服务 sc delete mysql
# 登录(服务启动才能登录) mysql -uroot -p # 输入刚刚上面生成的随机密码 # 修改密码(8.0以后) ALTER USER 'root'@'localhost' IDENTIFIED BY 'JIAJIA'; # 修改密码(5.7) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'JIAJIA' WITH GRANT OPTION; FLUSH PRIVILEGES;
## 1 以系统管理员身份运行cmd. ## 2 查看mysql是否已经启动,如果已经启动,就停止:net stop mysql. ## 3 切换到MySQL安装路径下:D:mysql-8.0.28-winx64mysql-8.0.28-winx64bin;如果已经配了环境变量,可以不用切换了。 ## 4 在命令行输入:mysqld -nt --skip-grant-tables ## 5 以管理员身份重新启动一个cmd命令窗口,输入:mysql -uroot -p,Enter进入数据库。 ## 6 如果不想改密码,只是想看原来的密码的话,可以在命令行执行这个语句 select host,user,password from mysql.user; # 即可查看到用户和密码 ## 7 如果要修改密码的话,在命令行下 依次 执行下面的语句 use mysql update user set password=password("new_pass") where user="root"; # 'new_pass' 这里改为你要设置的密码 flush privileges; quit ## 8 重新启动MYSQL,输入密码登录即可! ## 9 mysql -u root -p 输入密码试试吧
远程连接别人数据库
数据库:MySQL
# 确保两部电脑都是在同一个局域网,也就是连着同一个路由器,或者同一个WiFi
# 如果不确定是否为同一个局域网,可以打开cmd,输入ipconfig, 各自查看两部电脑的IPv4地址,如果前面三个字段都是一样的,比如电脑A为192.168.32.55,电脑B为192.168.32.57,那说明是同一个局域网
我的电脑–属性–控制面板-系统和安全-Windows Defender防火墙
# 在电脑上设置他人可连接:
1、电脑B打开cmd,输入mysql -u root -p,回车,输入mysql的密码,回车
2、然后依次输入:
use mysql; 回车 # 进入名为mysql的数据库
grant all privileges on * . * to ‘root‘@’192.168.32.55’ identified by ‘1234’ with grant# 意思是,在电脑B的数据库上创建一个用户名为root的账户,密码为1234,192.168.32.55就是电脑A的IP,允许它连接电脑B的数据库。
option; 回车
flush privileges; 回车 # 刷新一下权限点击“连接”,选择MySQL,连接名就输入“远程连接”吧,主机或IP输入192.168.32.57,这是电脑B的IP,端口默认3306不用管,用户名和密码就是上面的root、1234。然后点击“连接测试”,成功!
django可以他人访问
Web应用
mysql c和s装在同一台机器上
c链接s: cmd窗口中 mysql –h 127.0.0.1 -P 3306 -uroot -p密码
网络协议:一般情况,都是软件自定制协议—>基本都是基于TCP
# b/s 浏览器—服务端bs本质就是cs
咱们写的django,运行后—->s 服务端
客户端链接—->浏览器
网络协议:所有全是 http协议—>基于TCP, 如果不是http协议,浏览器识别不了# b/s好处:软件更新了,只需要后端更新,前端是浏览器,不需要变,直接访问,就是最新的
# 基于SOCKET写一个web应用
我们学习bs架构软件开发—我们开发 s端
使用socket 写一个 s端—浏览器就可以访问了import socket def server_run(): soc = socket.socket() soc.bind(('127.0.0.1', 8008)) soc.listen(5) while True: conn, addr = soc.accept() recv_data = conn.recv(1024) print(recv_data) # 1 直接在send里写,发送给客户端 http响应的格式 # conn.send(b'HTTP/1.1 200 OKrnrn<h1>hello web</h1><img src="https://img2.woyaogexing.com/2022/12/24/a22973058eab2aafa11248a8b6031f5e.jpg"></img>') #2 打开一个html文件,发送给客户端 # with open('index.html','r',encoding='utf-8') as f: # data=f.read() # conn.send(('HTTP/1.1 200 OKrnrn%s'%data).encode('utf-8')) # 3 动态网页,字符串替换 import time now=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print(now) with open('index.html','r',encoding='utf-8') as f: data=f.read() data=data.replace('@@',now) conn.send(('HTTP/1.1 200 OKrnrn%s'%data).encode('utf-8')) conn.close() if __name__ == '__main__': server_run()
http协议
# 定义:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)
# 特点:1、基于TCP协议之上的,【应用层】协议—-》它是可靠传输
2、基于请求-响应模式,必须客户端主动发起–》服务端才有响应
3、无状态保存 ,发送多次请求,对于服务端来讲,都是新的
cookie,session做会话保持
4、无连接,客户端不会一直跟服务端链接# http请求协议:
–请求协议
–请求首行—》请求方式,请求地址,请求协议版本号 1.1 rn
-请求头:key–value形式 rn rnrn–cookie:只要是当前域中有cookie,浏览器就会把它存到浏览器的cookie
-请求体:get请求一般没有请求体,post请求有请求体# 补充:请求一个网址
https://mp.csdn.net/mp_blog/creation/editor/134648226?spm=1001.2014.3001.9457
+路径(mp_blog/creation/editor/134648226?spm=1001.2014.3001.945)
https://mp.csdn.net/mp_blog/creation/editor/134648226?spm=1001.2014.3001.9457
django从:requests.GET 正常是:requst.get_full_path
$.ajax({ path: /login/?name=lqz date:{} }) ---->写成这样--->最终它会变成一个http请求,写的path实际是请求路径,写的data就是请求体
–json:后期使用多
django从:requests.POST request.body
# POST既能带在地址栏中,也能带在请求体中
GET一般都呆在地址栏中
3、带在请求头中:django中哪里取 request.META—->取出请求头
# 请求头 Host: 127.0.0.1:8008rn Connection: keep-alivern sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"rnsec-ch-ua-mobile: ?0rnsec-ch-ua-platform: "Windows"rnUpgrade-Insecure-Requests: 1rn User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36rn Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7rn Sec-Fetch-Site: nonernSec-Fetch-Mode: navigatern Sec-Fetch-User: ?1rn Sec-Fetch-Dest: documentrn Accept-Encoding: gzip, deflate, brrnAccept-Language: zh-CN,zh;q=0.9rn Cookie: csrftoken=0Eq1YnctKcjVroVgrU0MtwZ7hTMsEAkUUqf9nSyKBJsOtowSZbO4Cb99eCk4y0LHrnrn # 请求体
# http响应协议:
–响应协议
–响应首行:HTTP/1.1 200 OKrn –协议版本—响应状态码–》响应描述符
-响应头:响应头有什么–cookie
–响应体:一般给个html标签
浏览器中看到的页面,都是响应体的内容# OSI七层协议:
http的版本区别
搜http 有哪些主要版本,版本区别是什么? 0.9、1.1、2.0、 3.0
0.9
最初版本的HTTP协议,只支持GET方法,并且没有请求头和响应头的概念,只能传输纯文本。于1991年发布,由Tim Berners-Lee创建,被认为是HTTP的起源。该版本只支持GET请求,并且响应只能是HTML文本。
1.0
在HTTP/0.9的基础上增加了请求头和响应头的概念,并支持多种HTTP方法,包括GET、POST、PUT、DELETE等。于1996年发布,该版本的周期大约是6年,在2000年左右被广泛使用。
1.1
在HTTP/1.0的基础上进行了扩展和优化,包括持久连接、管线化、分块传输编码等特性,可以更高效地传输数据。于1999年发布,该版本的周期大约是15年,在2014年左右仍然是主流。
2.0
在HTTP/1.1的基础上进行了进一步的优化,包括二进制协议、多路复用、服务器推送等特性,能够更快地传输数据。HTTP/2于2015年发布,采用二进制协议,引入了多路复用、服务器推送等特性,进一步提高了性能。该版本的周期约为6年。
3.0
是HTTP协议的最新版本,基于QUIC协议进行了重构,具有更快的传输速度、更低的延迟和更好的安全性。HTTP/3于2020年发布,采用基于UDP的QUIC协议,该版本目前正在逐渐被广泛采用。
常用请求头和响应头
HTTP Request Header 请求头
HTTP Responses Header 响应头-Cookie
Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。有的接口需要登录之后才会生成Cookie信息,必须要保持登录的状态
常用响应状态码
1××:消息响应 2××:成功响应 3××:重定向响应 4××:客户端错误 5××:服务器端错误
200 请求成功 200 OK 请求成功,表示已经请求成功,默认情况下的状态码为200的响应就可以被缓存了。 204 无内容 No Content 务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 301 永久性重定向 Moved Permanently 请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 302 临时性重定向 Found 与301类似。但资源只是临时被移动。客户端应继续使用原有URI 303 查看其它地址 See Other 与302类似。使用GET请求查看 400 错误请求 Bad Request 400 错误请求,因发送的请求语法错误,服务器无法正常读取。 401 未经授权 Unauthorized 401 未经授权,需要身份验证后才能获取所请求的内容,类似于403错误.不同点是.401错误后,只要正确输入帐号密码,验证即可通过。 403 禁止访问 Forbidden 403 禁止访问,客户端没有权利访问所请求内容,服务器拒绝本次请求。 404 请求错误 Not Found 404 错误请求,因发送的请求语法错误,服务器无法正常读取。 500 内部服务器错误 Internal Server Error 500内部服务器错误,服务器遇到未知无法解决的问题。 502 无效网关 Bad Gateway 502 网关错误,服务器作为网关且从上游服务器获取到了一个无效的HTTP响应。
HTTP Request Header 请求头
Accept:指定客户端能够接收的内容类型。 Accept-Charset:浏览器可以接受的字符编码集。 Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。 Accept-Language:浏览器可接受的语言。 Accept-Ranges:可以请求网页实体的一个或者多个子范围字段。 AuthorizationHTTP:授权的授权证书。 Cache-Control:指定请求和响应遵循的缓存机制。 Connection:表示是否需要持久连接。(HTTP 1.1默认进行持久连接) CookieHTTP:请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。 Content-Length:请求的内容长度。 Content-Type:请求的与实体对应的MIME信息。 Date:请求发送的日期和时间。 Expect:请求的特定的服务器行为。 From:发出请求的用户的Email。 Host:指定请求的服务器的域名和端口号。 If-Match:只有请求内容与实体相匹配才有效。 If-Modified-Since:如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。 If-None-Match:如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变。 If-Range:如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。 If-Unmodified-Since:只在实体在指定时间之后未被修改才请求成功。 Max-Forwards:限制信息通过代理和网关传送的时间。 Pragma:用来包含实现特定的指令。 Proxy-Authorization:连接到代理的授权证书。 Range:只请求实体的一部分,指定范围。 Referer:先前网页的地址,当前请求网页紧随其后,即来路。 TE:客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息。 Upgrade:向服务器指定某种传输协议以便服务器进行转换(如果支持。 User-AgentUser-Agent:的内容包含发出请求的用户信息。 Via:通知中间网关或代理服务器地址,通信协议。 Warning:关于消息实体的警告信息
HTTP Responses Header 响应头
Accept-Ranges:表明服务器是否支持指定范围请求及哪种类型的分段请求。 Age:从原始服务器到代理缓存形成的估算时间(以秒计,非负)。 Allow:对某网络资源的有效的请求行为,不允许则返回405。 Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型。 Content-Encodingweb:服务器支持的返回内容压缩编码类型。。 Content-Language:响应体的语言。 Content-Length:响应体的长度。 Content-Location:请求资源可替代的备用的另一地址。 Content-MD5:返回资源的MD5校验值。 Content-Range:在整个返回体中本部分的字节位置。 Content-Type:返回内容的MIME类型。 Date:原始服务器消息发出的时间。 ETag:请求变量的实体标签的当前值。 Expires:响应过期的日期和时间。 Last-Modified:请求资源的最后修改时间。 Location:用来重定向接收方到非请求URL的位置来完成请求或标识新的资源。 Pragma:包括实现特定的指令,它可应用到响应链上的任何接收方。 Proxy-Authenticate:它指出认证方案和可应用到代理的该URL上的参数。 refresh:应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持) Retry-After:如果实体暂时不可取,通知客户端在指定时间之后再次尝试。 Serverweb:服务器软件名称。 Set-Cookie:设置Http Cookie。 Trailer:指出头域在分块传输编码的尾部存在。 Transfer-Encoding:文件传输编码。 Vary:告诉下游代理是使用缓存响应还是从原始服务器请求。 Via:告知代理客户端响应是通过哪里发送的。 Warning:警告实体可能存在的问题。 WWW-Authenticate:表明客户端请求实体应该使用的授权方案。
今日思维导图:
原文地址:https://blog.csdn.net/qq_48064830/article/details/134648226
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_38028.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!