- 浏览: 758585 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (663)
- Eclipse&MyEclipse (40)
- PHP (3)
- Java (72)
- CSS (3)
- MySQL (35)
- Oracle (68)
- Red Hat Linux (23)
- Tomcat (26)
- Oracle10gAS (1)
- Spring (28)
- MyBatis&iBatis (13)
- JS (47)
- JQuery (23)
- Editplus (2)
- 其他 (4)
- Html (15)
- SQL (5)
- Ant (2)
- Hadoop (2)
- Servlet (9)
- Windows (11)
- Flex (1)
- CentOS Linux (7)
- Microsoft SQL Server (2)
- DB2 (3)
- Mysql char 与 varchar 区别 (0)
- excel (5)
- jsp (8)
- FreeMarker (1)
- EasyUI (5)
- WebShpere MQ (1)
- Maven2 (6)
- 浏览器缓存 (2)
- visio (1)
- XML (2)
- 物联网 (1)
- Maven (3)
- JSTL (2)
- HTTP (1)
- Fourinone (1)
- IP知识 (1)
- MyBatis (1)
- 项目管理 (2)
- office2003+2007 (1)
- DOS (1)
- JProfiler (1)
- Thinpad T440p (1)
- ActiveMQ (10)
- MongoDB (5)
- Vert.x3 (1)
- Ngnix (3)
- Spark (2)
- BigData (1)
- 性能概念公式 (1)
- RocketMQ (3)
- IT名词术语 (1)
- Java编程工具 (1)
- RabbitMQ (2)
- MetaMQ (1)
- 架构 (6)
- KafkaMQ (7)
- Redis (4)
- OAuth (1)
- Gradle (1)
- CentOS (5)
- Microsoft_Toolkit (1)
- git (5)
- IntelliJ Idea (4)
- Nginx (3)
- docker (12)
- VMware (2)
- 算法 (1)
- JDBCPool (1)
- spring-cloud (7)
- netbean (1)
- 微信小程序 (2)
- CURL (2)
- Java生成二维码 (1)
- 区块链 (2)
- 机器学习 (1)
- SpringBoot (3)
- Android (9)
- 微服务架构 (1)
- Kubernetes (2)
- OpenProject (0)
- 测试 (1)
- https (1)
- 开源许可证 (1)
- ServiceMesh (2)
- NET (0)
- .NET (1)
- TEST (1)
- iOS (2)
- thymeleaf (4)
- lombok (1)
- 浏览器设置 (1)
- 富文本编辑器 (1)
- 搜索引擎 (1)
- IT常识 (1)
- UML (0)
- Axure (1)
- appstore无法联网 (0)
- apk无法安装 (1)
- SQLServer (2)
- 卸载弹窗软件 (1)
- jenkins (1)
- TortoiseGit (1)
- eureka (1)
- ajax (1)
- spyder (0)
最新评论
本实验分为上下两部分,第一部分:创建一个DB2实例;第二部分,进行了DB2网络通信配置(Server验证模式)的详解,演示了使用DB2命令行客户端(windows环境下),连接远端数据库的配置过程,这其中涉及到服务器端的配置、客户端的编目节点目录和编目数据库的内容。
第一部分:新建实例
1、欲使用db2icrt命令来创建实例,却发现找不到该命令:
[db2inst1@localhost ~]$ db2icrt
-bash: db2icrt: command not found
2、查找该命令工具的路径,并尝试执行,发现权限不足,需要在root用户下执行该命令:
[db2inst1@localhost ~]$ find /opt/ibm/ -name db2icrt
/opt/ibm/db2/V9.7/instance/db2icrt
[db2inst1@localhost ~]$ /opt/ibm/db2/V9.7/instance/./db2icrt -h
-bash: /opt/ibm/db2/V9.7/instance/./db2icrt: Permission denied
3、切换到root用户,使用-h来查看帮助:
[root@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ su - root
Password:
[root@localhost ~]# cd /opt/ibm/db2/V9.7/instance
[root@localhost instance]# ./db2icrt -h
DBI1001I Usage:
db2icrt [-h|-?]
[-d]
[-a AuthType]
[-p PortName]
[-s InstType]
-u FencedID InstName
4、发现需要指定FencedID和InstName参数,而这两个参数,实际上就是要指定两个用户名,FencedID用户主要管理用户定义的函数(UDF)和受防护存储过程。而InstName是新实例的名称,也是我们新实例的管理员的用户名。下面我们,分别新建这两个用户:
[root@localhost ~]# useradd inst2Fence
[root@localhost ~]# passwd inst2Fence
Changing password for user inst2Fence.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# useradd db2inst2
[root@localhost ~]# passwd db2inst2
Changing password for user db2inst2.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
5、现在是最关键的步骤,使用如下命令来创建实例,客户验证的方式采用server(-a参数),指定端口号为55555(-p参数),结果因Fenced用户名过长,创建失败:
[root@localhost instance]#./db2icrt -a server -p 55555 -s ese -u inst2Fence db2inst2
ERROR: The length of the fenced user name inst2Fence is invalid. It mustnot be longer than 8.
我们再创建一个名字较短的用户,以满足要求:
[root@localhost instance]# ./db2icrt -a server -p 55555 -s ese -u Fence2 db2inst2
DBI1070I Program db2icrt completed successfully.
6、切换用户登陆,查看下系统当前的默认实例:
[root@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ db2 get instance
The current database manager instance is: db2inst2
查看所有实例:
[db2inst2@localhost ~]$ db2ilist
db2inst2
db2inst1
总结:
1、创建实例使用的是db2icrt命令,由于版本的原因,默认是找不到该命令工具的路径。2、在创建实例之前,需要先创建好FencedID用户和InstName用户。
第二部分
此部分实验,演示了如何使用命令行客户端如何与db2服务器进行通信。
首先,在服务端需要配置好服务名、监听端口、通信协议,并且需要创建一个数据库,供客户端连接:
1、配置服务名
1.1、查看一下服务名,发现创建实例时指定的-p参数(端口名或端口号),成为了服务名:
[db2inst2@localhost ~]$ db2 get dbm cfg | grep SVC
TCP/IP Service name (SVCENAME) = 55555
SSL service name (SSL_SVCENAME) =
1.2、指定实例的服务名为db2c_db2inst2:
[db2inst2@localhost ~]$ db2 update dbm cfg using SVCENAME db2c_db2inst2
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
[db2inst2@localhost ~]$ db2 get dbm cfg | grep SVC
TCP/IP Service name (SVCENAME) = db2c_db2inst2
SSL service name (SSL_SVCENAME) =
2、指定监听客户端请求的端口,修改service文件:
[root@localhost instance]# vi /etc/services
db2c_db2inst2 55555/tcp
3、确认好通信协议是tcpip:
[db2inst2@localhost ~]$ db2set
DB2COMM=tcpip
4、重启db2实例(运行db2stop和db2start两条命令),查看监听是否开启:
[root@localhost instance]# netstat -a | grep db2c_db2inst2
tcp 0 0 *:db2c_db2inst2 *:* LISTEN
5、新建一个数据库,供客户端连接:
db2 => create database demo
DB20000I The CREATE DATABASE command completed successfully.
以下部分是在客户端进行配置的操作过程:
1、编目节点目录:
回到我们的客户端机器,打开windows的开始菜单,选择“IBM DB2”--“命令行工具”--“命令窗口”:
db2 => catalog TCPIP node n1 remote 192.168.102.163 server db2c_db2inst2
DB20000I CATALOG TCPIP NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
如何才能够“刷新”呢?使用如下命令,来查看帮助:
db2 => ? DB21056W
DB21056W直到刷新目录高速缓存之后,目录更改才生效。
解释:
若启用了目录高速缓存(DBM CFG dir_cache),数据库、节点和DCS目录文件都高速缓存在内存中。直到刷新该目录高速缓存之后,目录更改才开始生效。参阅“管理指南”中的dir_cache配置参数以获取有关目录高速缓存的描述。
用户响应:
要刷新CLP的目录高速缓存,发出db2TERMINATE。要刷新另一个应用程序的目录信息,停止该应用程序,然后重新启动它。要刷新该数据库的目录信息,停止(db2stop)该应用程序,然后重新启动(db2start)它。
查看帮助后,发现使用terminate即可:
db2 => terminate
DB20000I TERMINATE命令成功完成。
D:\Program Files\IBM\SQLLIB\BIN>
2、在客户端上编目数据库,可以给数据库名在本地取一个“别名”,以防止不同实例下的数据库出现同名的情况:
db2 => catalog database demo as demo2 at node n1 authentication server
DB20000I CATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
3、连接到数据库时出错,提示找不到服务:
db2 => connect to demo2 user db2inst2 using passwd
SQL1337N 找不到服务"db2c_db2inst2"。
4、分析:建立节点时,指定的最后一个参数可能有问题,因为我们新建实例的时候,指定的是端口号;与之对应得,客户端的在进行节点编目时也应该指定端口号,而不是服务名:
删除数据库编目和节点目录,为重新配置,做准备:
db2 => uncatalog db demo2
DB20000I UNCATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => uncatalog node n1
DB20000I UNCATALOG NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
D:\Program Files\IBM\SQLLIB\BIN>db2
5、重建节点目录和数据库编目:
db2 => catalog TCPIP node n1 remote 192.168.102.163 server 55555
DB20000I CATALOG TCPIP NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
db2 => catalog database demo as demo2 at node n1 authentication server
DB20000I CATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
6、成功登陆
db2 => connect to demo2 user db2inst2 using passwd
数据库连接信息
数据库服务器 = DB2/LINUX 9.7.1
SQL授权标识 = DB2INST2
本地数据库别名 = DEMO2
db2 => list node directory
节点目录
目录中的条目数= 2
节点1条目:
节点名 = N1
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 192.168.102.163
服务名称 = 55555
节点2条目:
节点名 = NDE5C9F6
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 192.168.102.163
服务名称 = db2c_db2inst1
总结:1、在本实验中,端口号和通信协议是服务器配置的重要参数,服务名的作用没有体现出来(使用图形化工具配置时,服务名作用十分重要);
2、客户端的配置,比较关键的步骤是节点目录和数据库编目的创建。
第一部分:新建实例
1、欲使用db2icrt命令来创建实例,却发现找不到该命令:
[db2inst1@localhost ~]$ db2icrt
-bash: db2icrt: command not found
2、查找该命令工具的路径,并尝试执行,发现权限不足,需要在root用户下执行该命令:
[db2inst1@localhost ~]$ find /opt/ibm/ -name db2icrt
/opt/ibm/db2/V9.7/instance/db2icrt
[db2inst1@localhost ~]$ /opt/ibm/db2/V9.7/instance/./db2icrt -h
-bash: /opt/ibm/db2/V9.7/instance/./db2icrt: Permission denied
3、切换到root用户,使用-h来查看帮助:
[root@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ su - root
Password:
[root@localhost ~]# cd /opt/ibm/db2/V9.7/instance
[root@localhost instance]# ./db2icrt -h
DBI1001I Usage:
db2icrt [-h|-?]
[-d]
[-a AuthType]
[-p PortName]
[-s InstType]
-u FencedID InstName
4、发现需要指定FencedID和InstName参数,而这两个参数,实际上就是要指定两个用户名,FencedID用户主要管理用户定义的函数(UDF)和受防护存储过程。而InstName是新实例的名称,也是我们新实例的管理员的用户名。下面我们,分别新建这两个用户:
[root@localhost ~]# useradd inst2Fence
[root@localhost ~]# passwd inst2Fence
Changing password for user inst2Fence.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# useradd db2inst2
[root@localhost ~]# passwd db2inst2
Changing password for user db2inst2.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
5、现在是最关键的步骤,使用如下命令来创建实例,客户验证的方式采用server(-a参数),指定端口号为55555(-p参数),结果因Fenced用户名过长,创建失败:
[root@localhost instance]#./db2icrt -a server -p 55555 -s ese -u inst2Fence db2inst2
ERROR: The length of the fenced user name inst2Fence is invalid. It mustnot be longer than 8.
我们再创建一个名字较短的用户,以满足要求:
[root@localhost instance]# ./db2icrt -a server -p 55555 -s ese -u Fence2 db2inst2
DBI1070I Program db2icrt completed successfully.
6、切换用户登陆,查看下系统当前的默认实例:
[root@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ db2 get instance
The current database manager instance is: db2inst2
查看所有实例:
[db2inst2@localhost ~]$ db2ilist
db2inst2
db2inst1
总结:
1、创建实例使用的是db2icrt命令,由于版本的原因,默认是找不到该命令工具的路径。2、在创建实例之前,需要先创建好FencedID用户和InstName用户。
第二部分
此部分实验,演示了如何使用命令行客户端如何与db2服务器进行通信。
首先,在服务端需要配置好服务名、监听端口、通信协议,并且需要创建一个数据库,供客户端连接:
1、配置服务名
1.1、查看一下服务名,发现创建实例时指定的-p参数(端口名或端口号),成为了服务名:
[db2inst2@localhost ~]$ db2 get dbm cfg | grep SVC
TCP/IP Service name (SVCENAME) = 55555
SSL service name (SSL_SVCENAME) =
1.2、指定实例的服务名为db2c_db2inst2:
[db2inst2@localhost ~]$ db2 update dbm cfg using SVCENAME db2c_db2inst2
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
[db2inst2@localhost ~]$ db2 get dbm cfg | grep SVC
TCP/IP Service name (SVCENAME) = db2c_db2inst2
SSL service name (SSL_SVCENAME) =
2、指定监听客户端请求的端口,修改service文件:
[root@localhost instance]# vi /etc/services
db2c_db2inst2 55555/tcp
3、确认好通信协议是tcpip:
[db2inst2@localhost ~]$ db2set
DB2COMM=tcpip
4、重启db2实例(运行db2stop和db2start两条命令),查看监听是否开启:
[root@localhost instance]# netstat -a | grep db2c_db2inst2
tcp 0 0 *:db2c_db2inst2 *:* LISTEN
5、新建一个数据库,供客户端连接:
db2 => create database demo
DB20000I The CREATE DATABASE command completed successfully.
以下部分是在客户端进行配置的操作过程:
1、编目节点目录:
回到我们的客户端机器,打开windows的开始菜单,选择“IBM DB2”--“命令行工具”--“命令窗口”:
db2 => catalog TCPIP node n1 remote 192.168.102.163 server db2c_db2inst2
DB20000I CATALOG TCPIP NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
如何才能够“刷新”呢?使用如下命令,来查看帮助:
db2 => ? DB21056W
DB21056W直到刷新目录高速缓存之后,目录更改才生效。
解释:
若启用了目录高速缓存(DBM CFG dir_cache),数据库、节点和DCS目录文件都高速缓存在内存中。直到刷新该目录高速缓存之后,目录更改才开始生效。参阅“管理指南”中的dir_cache配置参数以获取有关目录高速缓存的描述。
用户响应:
要刷新CLP的目录高速缓存,发出db2TERMINATE。要刷新另一个应用程序的目录信息,停止该应用程序,然后重新启动它。要刷新该数据库的目录信息,停止(db2stop)该应用程序,然后重新启动(db2start)它。
查看帮助后,发现使用terminate即可:
db2 => terminate
DB20000I TERMINATE命令成功完成。
D:\Program Files\IBM\SQLLIB\BIN>
2、在客户端上编目数据库,可以给数据库名在本地取一个“别名”,以防止不同实例下的数据库出现同名的情况:
db2 => catalog database demo as demo2 at node n1 authentication server
DB20000I CATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
3、连接到数据库时出错,提示找不到服务:
db2 => connect to demo2 user db2inst2 using passwd
SQL1337N 找不到服务"db2c_db2inst2"。
4、分析:建立节点时,指定的最后一个参数可能有问题,因为我们新建实例的时候,指定的是端口号;与之对应得,客户端的在进行节点编目时也应该指定端口号,而不是服务名:
删除数据库编目和节点目录,为重新配置,做准备:
db2 => uncatalog db demo2
DB20000I UNCATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => uncatalog node n1
DB20000I UNCATALOG NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
D:\Program Files\IBM\SQLLIB\BIN>db2
5、重建节点目录和数据库编目:
db2 => catalog TCPIP node n1 remote 192.168.102.163 server 55555
DB20000I CATALOG TCPIP NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
db2 => catalog database demo as demo2 at node n1 authentication server
DB20000I CATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
6、成功登陆
db2 => connect to demo2 user db2inst2 using passwd
数据库连接信息
数据库服务器 = DB2/LINUX 9.7.1
SQL授权标识 = DB2INST2
本地数据库别名 = DEMO2
db2 => list node directory
节点目录
目录中的条目数= 2
节点1条目:
节点名 = N1
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 192.168.102.163
服务名称 = 55555
节点2条目:
节点名 = NDE5C9F6
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 192.168.102.163
服务名称 = db2c_db2inst1
总结:1、在本实验中,端口号和通信协议是服务器配置的重要参数,服务名的作用没有体现出来(使用图形化工具配置时,服务名作用十分重要);
2、客户端的配置,比较关键的步骤是节点目录和数据库编目的创建。
相关推荐
接下来是配置过程,其中涉及到的hadr_target_list是一个重要的参数,它定义了DB2实例将用于HADR通信的远程主机地址列表。同时,需要考虑到不同版本IP协议的兼容性问题,以及配置示例的详细说明。 配置更改将对系统...
本文将主要介绍如何新建数据库实例、处理数据库路径不存在的问题以及如何进行客户端连接。 首先,理解DB2实例的概念至关重要。DB2实例是数据库的容器,它们彼此独立。安装DB2时,默认会创建一个名为DB2的实例。若需...
本文将详细介绍如何配置Toad for DB2,以便连接到DB2数据库。 1. **安装Toad for DB2客户端** 在开始配置之前,首先确保已经正确安装了Toad for DB2客户端软件。安装过程通常包括下载安装包、运行安装程序,然后...
DB2 客户端工具操作文档提供了安装和配置 DB2 客户端工具的详细步骤,以便用户能够管理和操作数据库。以下是对文档内容的详细解释: ### 一、安装工具 1. **安装 DB2 Runtime Client** - 开始安装 `DB2 8.1.8 ...
### Toad for DB2连接配置详解 #### 一、引言 在数据库管理与开发过程中,Toad for DB2是一款非常实用的工具,它能够帮助DBA和开发人员高效地进行DB2数据库的管理和开发工作。本文将详细介绍Toad for DB2的连接配置...
9. 配置 DB2 实例,服务器名称和端口号选择默认。 10. 设置通知(smtp 服务器为 DB2)。 11. 为运行状况监视器通知指定联系人。 12. 对 DB2 对象启用操作系统安全性,默认选择。 13. 开始复制文件并创建响应文件。 ...
确保可以正常连接到新建的数据库实例。 **示例:** 以荆州中心DB2数据库导入为例,数据库名为`jtpsoft`,用户名和密码分别为`db2inst1`和`db2admin`。假设使用的是DB2 V9.7版本。 通过以上步骤,可以顺利完成DB2...
- 在计算机桌面新建一个名为“DB2”的文件夹,用于存放解压后的安装文件。这一步是为了方便管理和后续操作。 #### 三、安装步骤 1. **解压缩安装文件**: - 双击下载好的`v9.7fp7_nt32_server.exe`文件启动解...
6. **连接DB2**: 在DBeaver中,你需要新建一个数据库连接。选择“IBM DB2”驱动,输入之前安装的DB2实例的连接信息,如主机名、端口、数据库名、用户名和密码。 7. **验证连接**: 成功连接后,你可以在DBeaver中...
- **新建实例**:创建了一个名为DB2的新实例,这将作为一个独立的数据库环境运行。 - **重新引导时启动实例**:设置实例在系统启动时自动启动,保证服务的连续性和可用性。 - **TCP/IP配置**:定义了服务名称为db2c_...
在客户端设置方面,Rapid SQL是一种常见的DB2数据库管理和开发工具,它提供了一个图形化的界面,便于执行SQL查询、管理数据库对象和进行数据库连接配置。存储过程是预编译的SQL代码块,可以封装复杂的业务逻辑,提高...
连接池可以预先创建并维护一定数量的数据库连接,当应用程序请求数据库连接时,直接从连接池中获取已有的连接,而不是每次都新建连接。 #### 六、DBConnectionManager类设计 根据提供的部分内容,这里给出一个简单...
DB2的认证过程可由操作系统或外部安全工具执行,具体取决于DB2服务器的配置。通过调整DBMCFG中的**AUTHENTICATION**参数,可以指定认证发生在客户端还是服务器端。该参数的设置包括但不限于: - **SERVER**(默认值...
您可能感兴趣的文章:MySQL 客户端不输入用户名和密码直接连接数据库的2个方法oracle数据库在客户端建立dblink语法DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .python网络编程学习笔记(九):...
为服务器配置“Auto Client Reconnect”(自动客户端重新连接)设置 95 配置 ICA“保持活动状态” 95 为场配置 ICA“保持活动状态”设置 95 为服务器配置 ICA“保持活动状态”设置 96 了解会话基础知识 96 管理和...
对于Inceptor连接的配置,提供了新建连接、LDAP认证和Kerberos认证三种方式。Kerberos认证需要指定Principal、UserPrincipal、Keytab和KBconf文件。使用方法包括编辑运行SQL语句、查看表中数据、以及SQL语法错误提示...
3. **连接到存储库(repository)**:通过RRC客户端连接到已配置的存储库,以便保存和管理需求文档及相关信息。 4. **使用RRC进行需求定义**: - 创建projects、folders和artifacts,构建需求的基本框架。 - 新建...
- **相关工具**:例如SQL Server、Oracle等数据库管理系统,以及专门的数据仓库工具如IBM DB2 Warehouse Edition、Teradata等。 #### 二、实验环境搭建与配置 - **实验环境**:基于NT的局域网络,服务器与客户端...