当前位置: 首页 > news >正文

NFS服务器与CGI程序详解

目录

 NFS 服务器

一,NFS 服务器简介

二,NFS的使用

三,客户端使用 autofs 自动挂载  

1,autofs产生的原因

四,autofs的安装与配置文件

五,autofs的使用

 www服务器---cgi程序

CGI程序的应用


 NFS 服务器

一,NFS 服务器简介

        NFS(Network File System,网络文件系统)是 FreeBSD 支持的文件系统中的一 种,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通TCP/IP 网络共享资源,主要在 unix 系列操作系统上使用。在 NFS 的应用中,本地NFS 的 客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一 样。

        NFS 服务器可以让 PC 将网络中的 NFS 服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。

    由于NFS 支持的功能比较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此 NFS 的功能所对应的端口并不固 定,而是随机取用一些未被使用的小于 1024 的端口用于传输。但如此一来就会产 生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口才能够连接。

    此时就需要 RPC(Remote Procedure Call,远程过程调用)的服务。由于当服务器在启动 NFS 时会随机选取数个端口号,并主动向 RPC 注册,所以 RPC 知道每个NFS 功能所对应的端口号,RPC 将端口号通知给客户端,让客户端可以连接到正确的端口上去。RPC 采用固定端口号port 111 来监听客户端的需求并向客户端响应正确的端口号。

 

注:在启动 NFS 之前,要先启动 RPC,否则 NFS 会无法向 RPC 注册。另外,RPC 若重新启动,原来注册的数据会消失不见,因此 RPC 重启后,它管理的所有服务都需要重新启动以重新向 RPC 注册。

 

Exportfs命令:

exportfs:  即编辑了配置文件:/etc/exports ->不需要重启服务,只需要使用exportfs重新更新资源就可以

Showmount命令:

showmount: show mount information for an NFS server: 显示NFS服务器提供共享的目录

使用方式: showmount -e IP

配置文件:/etc/exports

配置的语法:共享目录的路径   主机(权限);共享哪个目录,允许哪些主机来访问(权限是什么)

 

二,NFS的使用

1,安装软件:

[root@kelong ~]# yum install nfs-utils.x86_64 -y

[root@kelong ~]# yum install rpcbind.x86_64 -y

2,查看主配置文件是否存在

[root@kelong ~]# ls -l /etc/exports

 

3,在服务器端配置/etc/exports文件,将目录/nfsdata共享,且允许192.168.206.0/24网段的ip访问

[root@kelong ~]# vim /etc/exports

/nfsdata 192.168.206.0/24(rw)

4,创建nfsdata目录

[root@kelong ~]# mkdir /nfsdata

5,在/nfsdata目录下面创建文件test.txt

[root@kelong nfsdata]# vim test.txt

this file is created on nfs-server

6,启动服务

[root@kelong nfsdata]# systemctl restart rpcbind[root@kelong nfsdata]# systemctl restart nfs-server

7,在服务器上查看目录/nfsdata是否已经共享

[root@kelong nfsdata]# showmount -e 192.168.206.132

8,在客户端上安装nfs-utils.x86_64 -y

[root@wangjingjing ~]# yum install nfs-utils.x86_64 -y

此时在客户端上查看目录/nfsdata是否已经共享

9,在客户端创建挂载的目录/mountdata

[root@wangjingjing ~]# mkdir /mountdata

10,在客户端挂载之前的挂载信息

[root@wangjingjing ~]# mount

11,把服务器的/nfsdata目录挂载到客户端/mountdata目录上

[root@wangjingjing ~]# mount 192.168.206.132:/nfsdata /mountdata

12,再次查看客户端的挂载信息,发现服务器的/nfsdata目录已经成功挂载到/mountdata目录

[root@wangjingjing ~]# mount

13,此时在客户端就可以看见服务器共享的目录/nfsdata以及目录下的文件

[root@wangjingjing ~]# cd /mountdata[root@wangjingjing mountdata]# ls -l

14,权限需要写在括号内,且括号是紧接着主机名的。权限相关参数可以写多个,多

个参数之间用逗号隔开,具体相关参数说明如下:

在服务器上给目录/nfsdata权限777,客户端才可以编辑文件内容

[root@kelong nfsdata]# chmod 777 /nfsdata

(1)root_squash表示将root用户以及root用户组,映射成匿名用户(nobody)

默认配置为root_squash,在客户端以root用户和用户组创建文件test3.txt,

查看到的所属者所属组为nobody

[root@wangjingjing mountdata]# cp test2.txt test3.txt[root@wangjingjing mountdata]# ls -l

(2)no_root_squash:    表示就显示root用户和root用户组

在服务器修改目录的权限为no_root_squash

[root@kelong nfsdata]# vim /etc/exports

/nfsdata 192.168.206.0/24(rw,no_root_squash)

重新加载配置文件/etc/exports

[root@kelong nfsdata]# exportfs -r

在客户端以root用户和用户组创建文件test4.txt,可以看到,

此时的用户者和用户组为root

[root@wangjingjing mountdata]# cp test2.txt test4.txt[root@wangjingjing mountdata]# ls -l

3no_all_squash就显示普通用户以及用户组(默认配置): 当系统上没有这个uidgid对应的用户的时候,就直接显示uidgid

在客户端用普通用户redhat创建文件test5.txt

[redhat@wangjingjing mountdata]$ cp test3.txt test5.txt[redhat@wangjingjing mountdata]$ ls -l

4all_squash:将我们的普通用户以及用户组映射成匿名用户(nobody

在客户端用普通用户redhat创建文件test.txt

在服务器的主配置文件/etc/exports中增加all_squash权限

/nfsdata 192.168.206.0/24(rw,no_root_squash,all_squash)                                                     

重启服务

[root@kelong nfsdata]# exportfs -r

在客户端用普通用户redhat创建文件test6.txt,此时的所属者与所属组为nobody

[redhat@wangjingjing mountdata]$ cp test3.txt test6.txt[redhat@wangjingjing mountdata]$ ls -l

(5)anonuid=anongid= 将文件的用户和组映射为指定的 UID 和 GID,若不

指定默认为 65534(nfsnobody)

指定匿名用户uid gid为2778 匿名用户为nfsuser3

[root@kelong ~]# useradd nfsuser3 -u 2778

[root@wangjingjing mountdata]# useradd nfsuser3 -u 2778

分别在用户端和客户端增加用户nfsuser3并制定uid gid,修改配置文件/etc/

/nfsdata 192.168.206.0/24(rw,no_root_squash,all_squash,anonuid=2778,anongid=2778)

重新加载配置文件

[root@kelong ~]# exportfs -r

此时创建文件test8.txt发现所属者与所属组为刚创建的nfsuser3

[redhat@wangjingjing mountdata]$ ls -l

  

三,客户端使用 autofs 自动挂载  

1,autofs产生的原因

在一般 NFS 文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在/etc/rc.d/rc.local 中设置开机时自动挂载(/etc/rc.d/rc.local 文件中写入的命令,在每次启动系统用户登录之前都会执行一次);也可以在登录系 统后手动利用 mount 来挂载。由于网络的问题,NFS 服务器与客户端的连接不会一直存在,当我们挂载了 NFS 服务器之后,任何一方脱机都可能造成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:

    1、当客户端在有使用 NFS 文件系统的需求时才让系统自动挂载。

    2、当 NFS 文件系统使用完毕后,让 NFS 自动卸载。

于是就产生了 autofs 这个服务。

autofs 这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设

置当使用到该目录的某个子目录时,将会取得来自服务器端的 NFS 文件系统资

源,并进行自动挂载的操作。

 

四,autofs的安装与配置文件

1,在客户端安装autofs软件

[root@wangjingjing ~]# yum install autofs -y

2,查看有关auto的所有文件

[root@wangjingjing ~]# ls -l /etc | grep auto*

-rw-r--r--.  1 root root     15718 Feb  8 23:41 autofs.conf

-rw-r--r--.  1 root root      1040 Feb  8 23:41 auto.master

-rw-r--r--.  1 root root       519 Feb  8 23:41 auto.misc

autofs.conf-> 针对服务autofs的配置

auto.master -> 是针对目录对应的挂载配置文件

auto.xxx -> 对应的是:具体挂载信息

3,打开/etc/autofs.conf配置文件,主要针对nfs服务的配置

[root@wangjingjing mountdata]# vim /etc/autofs.conf

如果不使用挂载目录,300秒后自动断开挂载连接

dismount_interval = 300

4,打开/etc/auto.master配置文件,主要配置nfs挂载的配置

[root@wangjingjing mountdata]# vim /etc/auto.master[root@wangjingjing mountdata]# vim /etc/auto.master

样例配置:/misc这个目录自动挂载的信息autofs在 /etc/auto.misc中

配置语法: 目录   自动挂载配置文件的目录

/misc   /etc/auto.misc

5,打开/etc/auto.mic配置文件,主要是挂载的信息

[root@wangjingjing mountdata]# vim /etc/auto.misc

cd              -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

挂载的目录                   挂载的选项               :要挂载的设备

 五,autofs的使用

1,在客户端的auto.master中顶部加入一行:

注意:/nfsclient这个目录本身不存在,autofs会帮我们创建

/nfsclient /etc/auto.nfs

 

 

2,打开文件/etc/auto.nfs

[root@wangjingjing mountdata]# vim /etc/auto.nfs

编辑内容:将192.168.206.132:/nfsdata目录挂载到nfsdir目录下

nfsdir 192.168.206.132:/nfsdata

 

 

3,把客户端之前挂载的目录解挂载

[root@wangjingjing ~]# umount /mountdata

  

 

4,启动autofs服务

[root@wangjingjing ~]# systemctl restart autofs

 

5,此时,/nfsclient目录已经存在

[root@wangjingjing ~]# ls -ld /nfsclient

6,但是此目录为空

[root@wangjingjing ~]# ls -l /nfsclient

7,触发自动挂载

进入到nfsdir目录中会发现自动挂载,/nfslient为父目录,nfsdir为子目录

[root@wangjingjing nfsclient]# cd nfsdir
[root@wangjingjing nfsdir]# mount

8,退出nfsdir目录,五分钟后在查看挂载,挂载自动断开

 www服务器---cgi程序

CGI程序的输入:

环境变量

 环境变量中存储的叫做`Request Meta-Variables`,也就是诸如`QUERY_STRING`、`PATH_INFO`之类的,这些都是由Web服务器通过环境变量传递给CGI程序的,CGI程序也是从环境变量中读取的。

标准输出

存放的往往是用户通过`PUTS`或`POST`提交的数据,这些数据也是由Web服务器传递过来的。

CGI程序的输出:

CGI执行完成之后:标准输出

CGI程序通过标准输出(stdout)将输出信息传送给Web服务器。

http response报文的格式:

状态行

响应头

空行

响应体

CGI程序的应用

响应给浏览器一个hello world: 如何去构建这个hello world

方法一:

1,先查看一下原有的配置中是否支持CGI程序

vim /etc/httpd/conf/httpd.conf

从主配置文件可以看出,访问/cgi-bin 等于访问/var/www/cgi-bin

它会把/var/www/cgi-bin目录中的文件当做程序执行

2,切换到/var/www/cgi-bin/目录下,创建可执行脚本文件test.sh

[root@kelong ~]# cd /var/www/cgi-bin/[root@kelong cgi-bin]# touch test.sh

3,打开脚本文件test.sh

[root@kelong cgi-bin]# vim test.sh

编辑test.sh脚本文件内容

#!/bin/bash

#状态行 /响应行:不需要管,web服务器会帮我们自动生成

#     Content-Type: text/html;charset=utf-8

#空行: printf "\n"

#响应体:hello world

printf "Content-Type: text/html;charset=utf-8\n"

printf "\n"

printf "hello world\n"

4,给脚本test.sh增加执行权限

[root@kelong cgi-bin]# chmod +x test.sh

5,看脚本是否能执行

[root@kelong cgi-bin]# bash test.sh

6,此时访问192.168.206.132/cgi-bin/test.sh将会返回响应体的内容

方法二:

 手动为目录增加执行的权限:options +ExecCGI , 然后设置目录下哪些文件为可执行的程序(设置后缀名)

1,给目录/www/ip/138增加可执行的权限,并设置以.cgi结尾的文件为可执行文件

<Directory "www/ip/138">

    AllowOverride None

    AddHandler cgi-script .cgi

    Options +ExecCGI

    Require all granted

</Directory>

2,重启配置文件:

[root@kelong cgi-bin]# systemctl restart httpd

3,在/www/ip/138目录下创建以.cgi结尾的可执行文件

[root@kelong 138]# vim test.cgi

#!/bin/bash

#状态行 /响应行:不需要管,web服务器会帮我们自动生成

#     Content-Type: text/html;charset=utf-8

#空行: printf "\n"

#响应体:hello world

printf "Content-Type: text/html;charset=utf-8\n"

printf "\n"

printf "welcome to page 138\n"

4,去给这个文件增加可执行的权限

[root@kelong 138]# chmod +x test.cgi

5,此时来访问test.cgi

相关文章:

NFS服务器与CGI程序详解

目录 NFS 服务器 一&#xff0c;NFS 服务器简介 二&#xff0c;NFS的使用 三&#xff0c;客户端使用 autofs 自动挂载 1&#xff0c;autofs产生的原因 四&#xff0c;autofs的安装与配置文件 五&#xff0c;autofs的使用 www服务器---cgi程序 CGI程序的应用 NFS 服务器 一&a…...

可视化项目管理,控制项目进度,项目经理需要做好以下工作

对于项目的管理者来说&#xff0c;项目信息透明&#xff0c;能够更容易让管理者发现项目中的问题&#xff0c;及时找到问题的原因和相关任务的责任人。 当项目信息能相对精准地呈现给管理者时&#xff0c;也能促进项目成员也能更加认真负责的完成任务&#xff0c;不会找借口推…...

海康工业相机使用教程

工业相机使用一、硬件连接1、准备材料2、相机供电&#xff08;1&#xff09;区分电源适配器正负极&#xff08;2&#xff09;连接相机电源线缆&#xff08;3&#xff09;连接完成后&#xff0c;相机蓝色灯常亮则成功3、软件连接&#xff08;1&#xff09;MVS客户端下载地址&…...

java开发手册之安全规约

安全规约隶属于用户个人的页面或者功能必须进行权限控制校验。 说明&#xff1a;防止没有做水平权限校验就可随意访问、修改、删除别人的数据&#xff0c;比如查看他人的私信内容、修改他人的订单。 用户敏感数据禁止直接展示&#xff0c;必须对展示数据进行脱敏。 说明&#x…...

python模块引入问题和解决方案_真方案不骗人

1.pycharm运行python脚本的过程 使用pycharm等编辑器run/debug运行python脚本时&#xff0c;编辑器会通过本地python命令全路径执行脚本&#xff0c;例如 D:\DevelopTools\Python\python.exe D:/Codes/一长串路径/bbss_nature_python/demo/test_no_param_in.py 并且会在pyth…...

Read book Netty in action(Chapter X)--Unit Testing

序言 ChannelHandler 是Netty 应用程序的关键元素&#xff0c;所以彻底地测试它们应该是你的开发过程的一个标准部分。最佳实践要求你的测试不仅要能够证明你的实现是正确的&#xff0c;而且还要能够很容易地隔离那些因修改代码而突然出现的问题。这种类型的测试叫作单元测试。…...

Appium+Python连接真机、跳过登录页、Unexpected error while obtaining UI hierarchy问题

Appium连接真机 使用数据线连接电脑&#xff0c;然后选择文件传输方式 打开手机设置拉至底部&#xff0c;点击关于手机&#xff0c;连续点击7次版本号打开开发者模式 点击设置中的系统与更新&#xff0c;找到开发者选项----> 打开USB调试即可 在终端中输入adb devices确定…...

ES6模块化

目录 一、什么是 ES6 模块化规范 二、ES6 模块化的基本语法 2.1默认导出 2.1默认导入 2.1 注意事项 2.2按需导出 2.2按需导入 2.2按需导出与按需导入的注意事项 2.3直接导入并执行模块中的代码 一、什么是 ES6 模块化规范 ES6 模块化规范是浏览器端与服务器端通用的…...

201809-3 CCF 元素选择器 满分题解(超详细注释代码) + 解题思路(超详细)

问题描述 解题思路 根据题意可以知道在查询中可以分为两种情况 第一种是查询一个标签选择器或者id选择器&#xff08;可以称为一级查询&#xff09; 第二种就是存在大于两级的查询&#xff08;可以称为多级查询&#xff09; 显然第一种查询需要存储每一种元素在内容中所有出现…...

证书拓展域(1)

证书拓展定义了数字证书的标准拓展&#xff0c;每个拓展域GB/T 16264.8-200X中定义的一个OID相关。 这些OID都是id-ce的成员&#xff0c;其定义如下&#xff1a; id-ce OBJECT IDENTIFIER :: { joint-iso-ccitt(2) ds(5) 29 }1.证书策略 certificatePolicies 1.1 定义 本…...

浅谈ChatGPT 和 对AI 的思考

新世纪以来&#xff0c;人工智能作为一个非常热门话题&#xff0c;一直收到大众的广泛的关注。从一开始的图像的分类&#xff0c;检测&#xff0c;到人脸的识别&#xff0c;到视频分析分类&#xff0c;到事件的监测&#xff0c;到基于图片的文本生成&#xff0c;到AI自动写小说…...

NCRE计算机等级考试Python真题(十二)

第十二套试题1、以下关于程序设计语言的描述&#xff0c;错误的选项是&#xff1a;A.Python语言是一种脚本编程语言B.汇编语言是直接操作计算机硬件的编程语言C.程序设计语言经历了机器语言、汇编语言、脚本语言三个阶段D.编译和解释的区别是一次性翻译程序还是每次执行时都要翻…...

Java并发类库提供的线程池有哪几种? 分别有什么特点?

第21讲 | Java并发类库提供的线程池有哪几种&#xff1f; 分别有什么特点&#xff1f; 我在专栏第 17 讲中介绍过线程是不能够重复启动的&#xff0c;创建或销毁线程存在一定的开销&#xff0c;所以利用线程池技术来提高系统资源利用效率&#xff0c;并简化线程管理&#xff0c…...

企业微信如何群发消息到客户群?

为提升工作效率&#xff0c;工作中&#xff0c;企业常常会借助企业微信的群发功能一键发送多个客户。那么企业微信如何群发消息呢&#xff1f; 其中成员个人支持群发消息到客户群&#xff0c;企业也可以创建内容提醒成员进行执行群发。 管理员支持在管理端或在手机端创建企业…...

【信号与系统笔记】第一章 绪论

1.1信号传输系统 信息传输的任务 将带有信息的信号&#xff0c;通过某种系统由发送者传送给接收者。 通信系统的组成 转换器&#xff1a;把消息转换为电信号或者把电信号还原成消息信道&#xff1a;信号传输的通道&#xff0c;广义上来说。发射机和接收机也可以是信道的一部分…...

[神经网络]DETR目标检测网络

一、概述 相较于传统目标检测&#xff0c;DETR是一种纯端到端的网络。它不再需要NMS(非极大值抑制&#xff0c;用于去除多余的预测框)和生成anchor。 DETR提出了一个新的目标函数&#xff08;二分图匹配&#xff09;&#xff0c;这个函数可以强制网络输出一个独一无二的预测值&…...

【服务器管理】connection refused问题解决

简述 在配置服务器的时候&#xff0c;遇到了这个问题。我当时明明已经搭建好了服务&#xff0c;但是我在客户端比如手机上&#xff0c;却怎么都连不上服务器。看日志的话显示的是connection refuesed timeout 这种情况&#xff0c;大概率是服务器的端口没有被打开。 我们只需…...

2023_华为OD机试真题_Python_047_整理扑克牌

整理扑克牌 题目描述 给定一组数字,表示扑克牌的牌面数字,忽略扑克牌的花色,请按如下规则对这一组扑克牌进行整理: 步骤1. 对扑克牌进行分组,形成组合牌,规则如下: 当牌面数字相同张数大于等于4时,组合牌为“炸弹”;3张相同牌面数字 + 2张相同牌面数字,且3张牌与2…...

吐血整理,自动化测试pytest测试框架,资深测试带你少走弯路......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 Pytest框架详解 py…...

SAP BASE64加密及解密

简介&#xff1a;BASE64是一种编码方法&#xff0c;它是一种基于用64个可打印字符来表示二进制数据的表示方法&#xff0c;主要应用于数据存储&#xff0c;传输&#xff0c;打印它是用64个可打印字符表示二进制所有数据方法。由于2的6次方等于64&#xff0c;所以可以用每6个位元…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...