Centos离线静默安装 oracle11g,步骤细验证成功
nanshan 2025-01-10 15:54 15 浏览 0 评论
一、 环境要求
1.1. 涉及工具及环境
1) CentOS7 64 位系统
2) oracle 安装包文件
a) linux.x64_11gR2_database_1of2.zip
b) linux.x64_11gR2_database_2of2.zip
3) oracle 安装依赖包,提前下载到一个文件夹中
binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-
common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel
make sysstat unixODBC unixODBC-devel(复制这些,手敲累哈)
1.2. Oracle 服务器要求
1) 最小内存 1G,推荐 2G 或 2G 以上
2 / 20
2) 1GB 跟 2GB 物理内存之间的,设定 swap 大小为物理内存的 1.5 倍
1. 2GB 跟 16GB 物理内存之间的,设置 swap 大小与物理内存相等
2. 16GB 物理内存以上的,设置 swap 大小为 16GB
3) 硬盘要求空间至少 5-6GB
硬件检测:
cat /etc/issue
uname -r (版本)
grep MemTotal /proc/meminfo (内存大小)
grep SwapTotal /proc/meminfo (交换区大小)
grep "model name" /proc/cpuinfo (CPU 信息)
free (可用内存)
二、 准备工作
2.1. 上传 oracle 11g 安装文件到服务器并解压(如果没有可以到官网免费下载实验)
安装包及其依赖包上传到/home/software/oraclefile 目录下,将安装包解压
/home/software/oraclefile
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
待解压完毕后会生成文件夹/home/software/oraclefile /database,里面是解压后的所有 oracle
安装文件。
2.2. 关闭 selinux
vim /etc/selinux/config 设置 SELINUX=disabled(永久关闭 selinux,但是需要重新启动系统)
setenforce 0 // ( 临 时 关 闭 selinux , 马 上 生 效 , 重 启 失 效 )
2.3. 关闭防火墙
systemctl stop firewalld.service //临时关闭防火墙
3 / 20
systemctl disable firewalld.service // 永 久 关 闭 防 火 墙
三、 安装步骤
3.1. 检查依赖包并手动安装
? 检查 oracle 依赖包缺失项:(ssh 连通后,复制以下内容即可,手动太累,检查完毕如果
有 not 找不到的依赖包,需要自己下载,再安装。或者上传一个 Centos 的 ISO 文件,配
置本地 yum 源进行安装,也就说,这些缺少的依赖都在 Centos 中可以找到)。
rpm -q elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-
headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
? 进入到依赖包文件夹内,手动进行安装缺失包
cd /home/software/oraclefile/Oracle11gRPMlinux/x86_64(文件夹名称可以自己命名,不影响以下安装)
rpm -ivh *.rpm –nodeps –force 强制安装依赖包
4 / 20
5 / 20
一共 39 个依赖包。
3.2. 添加 oracle 用户和用户组
groupadd oinstall //创建 oinstall 组
groupadd dba //创建 dba 组
useradd -g oinstall -G dba oracle //将 oracle 用户加入组 (-g 设置的是用户的主用户
组,这些信息记录在/etc/passwd 中,-G 设置的是用户附加组,记录在/etc/group 中)
passwd oracle //修改并设定 oracle 用户密码 (密码为 Pass@w0rd)
3.3. 修改内核参数配置文件
1) vi /etc/sysctl.conf 配置文件内加入修改以下参数,如果没有可以自己添加,如果默认值比
参考值大,则不需要修改。
fs.file-max= 6815744(系统所有进程一共可以打开文件的数量,一般为内存大小(KB)的
10%)
fs.aio-max-nr=1048576(同时可以拥有的异步 IO 请求数目)
net.ipv4.ip_local_port_range= 9000 65500(定义了网络连接可以用作其源(本地)端口的最
小和最大端口,适用于 TCP 和 UDP 连接)
6 / 20
net.core.rmem_default= 262144(内核套接字接收缓存区默认的大小)
net.core.rmem_max= 4194304(内核套接字接收缓存区最大值)
net.core.wmem_default= 262144(内核套接字发送缓存区默认的大小)
net.core.wmem_max= 1048576(内核套接字发送缓存区最大值)
kernel.sem= 250 32000 100 128(一共四组,组间有空格,250 信号集容纳的最大数量,32000
所有信号的最大数量,100 调用单个信号集中最大信号数量,128 信号集的最大值)
2)执行命令 sysctl 使其自检并生效 sysctl –p
3.4. 修改用户的限制文件
1) 修改进程数和最大会话数
执行如下命令,修改配置文件/etc/security/limits.conf
vi /etc/security/limits.conf 在文件尾部添加如下信息:
oracle soft nproc 2047(oracle 用户可用的最大进程数量软限制,可以增加,上限是 16384)
oracle hard nproc 16384(oracle 用户可用的最大进程数量硬限制)
oracle soft nofile 1024(oracle 用户可打开的文件描述符的最大数的软限制,可以增加,上
限是 65536)
oracle hard nofile 65536(oracle 用户可打开的文件描述符的最大数的硬限制)
7 / 20
2)设置关联信息
执行如下命令,修改关联文件/etc/pam.d/login
vi /etc/pam.d/login
在文件尾部添加如下信息:
session required /lib64/security/pam_limits.so
session required pam_limits.so
备注:64 位系统时,千万别写成/lib/security/pam_limits.so,否则导致无法登录,这样才能使
设置生效。
3.5. 创建安装目录和设置文件权限
1)创建安装目录
mkdir /usr/local/oracle //数据库系统安装目录
mkdir /usr/local/oradata //数据库数据安装目录
mkdir /usr/local/oradata_back //数据备份目录
mkdir /usr/local/oraInventory //清单目录
2)赋予组用户及权限
chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata
(/usr/local/oracle 目录,/usr/local/oraInventory 目录,/usr/local/oradata 目录更改其所有
8 / 20
者为 oracle,所有组更改为 oinstall。)
chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata ( 目 录
/usr/local/oracle,目录/usr/local/oraInventory,目录/usr/local/oradata 下的所有文件包括子目
录的文件,所属组具有读 r,写 w,执行 x 的权限,所属者读 r,写 w,执行 x 的权限,其他用户
具 有 读 r, 执 行 x 的 权 限 , -R 是 连 同 子 目 录 一 起 赋 权 。 其 中 定 义 为
r=4,w=2,x=1,775=4+2+1,4+2+1,4+1)
3.6. 配置 oracle 用户环境变量
vi /home/oracle/.bash_profile 文件内加入并修改至以下内容
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
保存退出后执行 source 命令立即生效:source .bash_profile
其中,export 是设置环境变量,source 是让环境变量立即生效。
3.7. 编辑静默安装响应文件
首先进入 oracle 用户:su – oracle(中间的横杠一定要加,是带环境变量)
1) 复制一份模板
cp -R /home/software/oraclefile/database/response /usr/local/oracle( cp 命令相当于
windows 下的 copy 命令,-R 是连同子目录)
将 oracle 静默安装所需应答文件全部拷贝至 /usr/local/oracle 文件夹下
2) 修改安装所需的所有响应文件的所属组及权限
cd /usr/local/oracle/response
chown oracle:oinstall /usr/local/oracle/response/*.rsp
chmod 755 /usr/local/oracle/response/*.rsp
9 / 20
3) 配置 db_install.rsp 文件
vi /usr/local/oracle/response/db_install.rsp
文件内需要修改相应的参数配置如下:
oracle.install.option=INSTALL_DB_SWONLY #安装类型,只装数据库软件
ORACLE_HOSTNAME= localhost.localdomain #主机名称(命令 hostname 查询)
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/usr/local/oraInventory #INVENTORY 目录(**不填就是默认值,本
例此处需修改,因个人创建安装目录而定,我们之前的 3.5 中创建了这个目录)
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1 # oracle_home *路径根据目录
(需要手动配置路径)情况注意修改 本例安装路径/usr/local/oracle
ORACLE_BASE=/usr/local/oracle # oracle_base *注意修改
oracle.install.db.InstallEdition=EE # oracle 版本
oracle.install.db.isCustomInstall=false #自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba #dba 用户组
oracle.install.db.OPER_GROUP=dba #oper 用户组
oracle.install.db.config.starterdb.password.SYS=Pass@w0rd
oracle.install.db.config.starterdb.password.SYSTEM= Pass@w0rd
DECLINE_SECURITY_UPDATES=true # **注意此参数 设定一定要为 true
(385 行)
4)需要创建一个目录 mkdir –p /usr/local/oracle/product/11.2.0/db_1
3.8. 根据响应文件安装 oracle
在 oracle 用户下安装
su - oracle
$ cd /home/software/oraclefile/database/
$./runInstaller -silent –responseFile /usr/local/oracle/response/db_install.rsp -ignorePrereq
参数说明:
/home/database 是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而
异。
runInstaller 是主要安装脚本
-silent 静默模式
-force 强制安装
-ignorePrereq 忽略 warning 直接安装。
-responseFile 读取安装应答文件。
10 / 20
安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],
则安装程序已经停止了。
上图是提示权限不够,在 root 用户下再执行一遍
chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata
如果想查看错误日志,可以打开另一个终端,
执行 tail -100f /usr/local/oraInventory/logs/installActions*.log
如果不需要看,可以不执行这一步。
下图是正常安装的过程,这个过程光标在闪烁,静静的等待即可,约 10 分钟左右
当出现以下界面时, 表示安装成功了,按照其提示操作。(静静的等待,光标在闪)
在新创建的 root 窗口内执行以下提示的脚本:
#cd /usr/local/oraInventory/
sh orainstRoot.sh(设置文件目录位置和拥有该目录的操作系统组)
11 / 20
#cd /usr/local/oracle/product/11.2.0/db_1/
sh root.sh (设置必要的操作系统权限,检查生成的日志文件)
3.9. 编辑静默建库响应文件
su – oracle
$cd /usr/local/oracle/response
$mv dbca.rsp dbca_orcl.rsp #改名为 dbca_数据库名.rsp
3.10. 静默配置监听(网络)
通 过 response 文 件 运 行 netca, 生 成 sqlnet.ora 和 listener.ora 文 件 , 位 于
$ORACLE_HOME/network/admin 目录下:
# su – oracle
$netca /silent /responsefile /usr/local/oracle/response/netca.rsp
12 / 20
$ ll $ORACLE_HOME/network/admin/*.ora(这里是两个 LL,千万不要写成双竖杠或者两个II)
成功运行后,在/user/local/oracle/product/11.2.0/db_1/network/admin 目录下生成 sqlnet.ora
和 listener.ora 两个文件
启动监听 $/usr/local/oracle/product/11.2.0/db_1/bin/lsnrctl start
通过 netstat -tlnp 命令,看到
tcp 0 0 :::1521 :::* LISTEN 5477/tnslsnr(显示 tcp6)
说明监听器已经在 1521 端口上开始工作了。
netstart命令参数:
-t:tcp
-u:udp
l:列出有在 Listen (监听) 的服務状态
-n:拒绝显示别名,能显示数字的全部转化成数字
p:显示建立相关链接的程序名
3.11. 静默安装数据库(同时也建立一个对应的实例)
1)修改/usr/local/oracle/response/dbca_orcl.rsp,设置如下:
RESPONSEFILE_VERSION = "11.2.0" #不能更改
OPERATION_TYPE = "createDatabase" #不能更改
GDBNAME="orcl "#78 行全局数据库的名字=SID+主机域名
SID="orcl" //149 行 SID 对应的实例名字
TEMPLATENAME = "General_Purpose.dbc" 169 行 #建库用的模板文件
SYSPASSWORD="Pass@w0rd" 190 行 #SYS 管理员密码
13 / 20
SYSTEMPASSWORE=" Pass@w0rd"#200 行//SYSTEM 管理员密码
DATAFILEDESTINATION= /usr/local/oradata 357 行//数据文件存放目录
RECOVERYAREADESTINATION=/usr/local/oradata_back 367 行#恢复数据存放目录
CHARACTERSET="AL32UTF8"#字符集,415 行,重要!!!建库后一般不能更改,所以建库前要
确定清楚
TOTALMEMORY= "5120" 540 行 #oracle 内存 5120MB,建议为物理内存 70%~85%
2)静默建库命令如下
$dbca -silent -responseFile /usr/local/oracle/response/dbca_orcl.rsp
3)查看日志文件:
$ cat /usr/local/oracle/cfgtoollogs/dbca/orcl/orcl.log(此步不执行也可以)
4) 建库后实例检查
14 / 20
$ ps -ef | grep ora_ | grep -v grep| wc –l
21(我第一遍安装是 21 个进程,第二遍安装是 22 个进程,细想中……)
(ps –ef 查询所有进程,grep 通过管道来过滤,grep –v 是反向查询的意思,gerp –v grep 的
作用是除去包含 grep 的选项,wc –l 统计查询到的结果数量。)
$ps -ef | grep ora_
5) 建库后监听检查
$lsnrctl status
15 / 20
上图可以看到监听是成功的。
3.12. 修改 oracle 启动配置文件
su – oracle
$vi/etc/oratab
orcl:/usr/local/oracle/product/11.2.0/db_1:Y //把"N"改成"Y"
这样就可以通过 dbstart 启动此实例,监听器。
$dbshut $ORACLE_HOME
Processing Database instance"orcl": log file
/usr/local/oracle/product/11.2.0/db_1/shutdown.log
此时所有 oracle 的进程关闭,监听器也停止。
$dbstart $ORACLE_HOME
Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/startup.log
此时监听器工作,orcl 实例运行,再次查看监听器状态。
$lsnrctl status
16 / 20
四、 Linux 下建立 Oracle 服务及其开机自启动
以 root 身份建立开机启动 oracle 服务的脚本:vi/etc/init.d/oracle,添加如下脚本:
#!/bin/sh
#chkconfig: 2345 20 80
#description: Oracledbstart / dbshut
#以上两行为 chkconfig 所需
ORA_HOME=/usr/local/oracle/product/11.2.0/db_1
ORA_OWNER=oracle
LOGFILE=/var/log/oracle.log
Echo "#################################" >> ${LOGFILE}
date +"### %T%a %D: Run Oracle" >> ${LOGFILE}
if [ ! -f${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then
echo "Error: Missing the script file${ORA_HOME}/bin/dbstart or
${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}
echo"#################################" >> ${LOGFILE}
exit
fi
start(){
echo "###Startup Database..."
su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbstart ${ORA_HOME}"
echo "###Done."
echo "###Run database control..."
su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl start dbconsole"
echo "###Done."
}
stop(){
echo "###Stop databasecontrol..."
su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl stop dbconsole"
echo "###Done."
echo "###Shutdown Database..."
su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbshut ${ORA_HOME}"
echo "###Done."/
}
case"$1" in
'start')
start >> ${LOGFILE}
;;
'stop')
stop >> ${LOGFILE}
;;
'restart')
stop >> ${LOGFILE}
17 / 20
start >> ${LOGFILE}
;;
esac
date +"### %T%a %D: Finished." >> ${LOGFILE}
echo "#################################" >> ${LOGFILE}
echo ""
18 / 20
脚本部分解释:
Chkconfig:2345 20 80,2345 表示系统运行级别是 2,3,4,5 时都启动此服务,20 是启动的
优先级,80 是关闭的优先级。如果启动优先级配置的数太小比如是 0,则有可能启动失
败,因为此时其所依赖的网络服务器还没有启动,从而导致启动失败。
description: Oracledbstart / dbshut 关于服务的说明,启动和关闭。
ORA_HOME=/usr/local/oracle/product/11.2.0/db_1 这里的变量值是你自己安装 oracle 数据
库的安装路径,路径中你会找到 product,然后依次找到 db_1。
ORA_OWNER=oracle,owner 是属于 Oracle 用户.
使用如下命令将/etc/init.d/oracle 置为可执行文件:
chmod a+x/etc/init.d/oracle
至此,可使用如下命令对 oracle 进行启动和关闭
/etc/init.d/oracle start #启动 oracle(包括数据库实例、监听器、EM)
/etc/init.d/oracle stop #关闭 oracle
/etc/init.d/oracle restart #重启 oracle
19 / 20
su - root
将 oracle 添加到 chkconfig 中:
chkconfig --add oracle
可使用如下命令查看和设置 oracle 服务的开机启动级别:
chkconfig | grep oracle #查看 oracle 服务的开机启动级别
chkconfig –level 24 oracle off #修改 oracle 服务的开机启动级别
chkconfig –level 35 oracle on
chkconfig | grep oracle #查看 oracle 服务的开机启动级别
至此可使用如下命令对 oracle 的启动或关闭进行管理
service oracle start #启动
service oracle stop #关闭
service oracle restart #重启
20 / 20
建立连接:
ln –s /etc/init.d/oracle /etc/rc0.d/K01oracle #关机执行
ln –s /etc/init.d/oracle /etc/rc6.d/K01oracle #重启执行
五、 Linux 下 oracle 数据库启动和关闭操作
5.1. 启动 oracle 的步骤
Linux 下启动 Oracle 分为以下两步:
启动数据库实例,启动 lsnrctl 监听
1) 启动 oracle 数据库实例
? 以 system 用户身份登陆 oracle
? 在 oracle 用户下,输入 sqlplus /nolog
? 使用管理员权限 connect/as sysdba
? 启动/关闭服务
2) 启动 oracle 监听
数据库实例启动之后,需启动监听器,才能让远程用户建立连接。可使用如下命令启动监
听器:
? 登陆
root 登陆之后切换到 oracle 用户上,输入 su - oracle
? 检查 oracle 监听器运行状态
通过 lsnrctl status 命令查看;
启动监听,通过命令 lsnrctl start
5.2. 查看 oracle 服务是否已经启动
? ps aux | grep ora_ #若无 ora_**_**相关的进程,则 oracle 数据库实例未启动
? netstat -tlnup | grep 1521 #若无任何显示,则监听器未启动
? lsnrctl status #查看监听器状态
? netstat -tlnup | grep 1158 #若无任何显示,则 EM 未启动
? emctl status dbconsole #查看 EM 状态
本次 em 未启动成功,但是不影响使用。
相关推荐
- 0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)
-
文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...
- ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes
-
为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...
- 生产环境starrocks 3.1存算一体集群部署
-
集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...
- 在CentOS上添加swap虚拟内存并设置优先级
-
现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...
- 国产深度(deepin)操作系统优化指南
-
1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...
- postgresql-15.4 多节点主从(读写分离)
-
1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...
- Docker 容器 Java 服务内存与 GC 优化实施方案
-
一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...
- 虚拟内存设置、解决linux内存不够问题
-
虚拟内存设置(解决linux内存不够情况)背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...
- Elasticsearch性能调优(5):服务器配置选择
-
在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...
- Es如何落地
-
一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...
- 针对Linux内存管理知识学习总结
-
现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...
- MySQL进阶之性能优化
-
概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...
- Linux Cgroups(Control Groups)原理
-
LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...
- linux 常用性能优化参数及理解
-
1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...
- 如何在 Linux 中使用 Sysctl 命令?
-
sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)