centos安装Java环境和oracle数据库

2023-05-16

centos7安装Java开发环境及oracle踩坑系列

  • centos7安装jdk和redis
    • jdk安装
    • Redis安装
      • Redis自启动
    • centos7中的oracle安装
      • 踩坑位置
      • oracle自启动设置

centos7安装jdk和redis

jdk安装

参考该文献:https://blog.csdn.net/weixin_56814370/article/details/123387785

Redis安装

Linux 源码安装
下载地址:http://redis.io/download,下载最新稳定版本。

本教程使用的最新文档版本为 2.8.17,下载并安装:

# wget http://download.redis.io/releases/redis-6.0.8.tar.gz
# tar xzf redis-6.0.8.tar.gz
# cd redis-6.0.8
# make

执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:

下面启动 redis 服务:

# cd src
# ./redis-server

注意这种方式启动 redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用下面命令启动。

# cd src
# ./redis-server ../redis.conf

redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。

启动 redis 服务进程后,就可以使用测试客户端程序 redis-cli 和 redis 服务交互了。 比如:

# cd src
# ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

在linux下安装完redis后,需要设置密码的朋友,在redis.config中requirepass属性后面添加密码即可。

Redis自启动

在linux下安装完redis后,在虚拟机中运行相关项目的童鞋们,在关机后redis进程随着再次开机需要重新启动,故,redis自启会起到更自动化的作用,下面提供自启动的方法:
1、配置redis.config文件:
设置redis.conf中daemonize为yes,确保守护进程开启。
注:找不到redis.config文件的用户运用如下命令可寻找:

find / -name redis.conf

当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,查看配置文件的默认路径(记住这个路径,一会要用)。

编写开机自启动脚本

#!/bin/bash
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
# 如果不知道redis-server,redis-cli命令在哪里,通过find / -name redis-server/redis-cli 查找
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/opt/redis-6.0.8/redis.conf"
AUTH="123456"
case "$1" in
        start)
                if [ -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is already running or crashed."  
                else
                        echo "Starting Redis server..."  
                        $EXEC $CONF   &
                fi
                if [ "$?"="0" ]
                then
                        echo "Redis is running..."  
                fi
                ;;
        stop)
                if [ ! -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is not running."  
                else
                        PID=$(cat $PIDFILE)
                        echo "Stopping..."  
                       $REDIS_CLI -p $REDISPORT  SHUTDOWN
                        sleep 2
                       while [ -x $PIDFILE ]   
                       do
                                echo "Waiting for Redis to shutdown..."  
                               sleep 1
                        done
                        echo "Redis stopped"  
                fi
                ;;
        restart|force-reload)
                ${0} stop
                ${0} start
                ;;
        *)
               echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
                exit 1
esac

启动redis服务,测试

/etc/init.d/redis start

启动成功会提示如下信息:

Starting Redis server...
Redis is running...

设置开机自启动

chkconfig redis on

关机重启,查看redis服务,有没有自启动

ps -ef|grep redis

看到redis-server*:6379这个服务,就代表成功了。

centos7中的oracle安装

可视化界面安装参考如下文章:
https://blog.csdn.net/weixin_29789925/article/details/116311843

踩坑位置

1、首先在可视化界面中Installation location中关于software location的位置,在不同的安装总可能不会出现最后一级,即/dbhome_1,可手动创建,或者按照默认进行安装。
2、在Create Inventory安装位置时,默认的最后一级文件夹可能会产生乱码,则在当前位置创建文件夹乱码即可消失。
3、同时,在虚拟机中安装oracle,可能会产生点击下一步后没有反应的状况,可能的原因为在oracle用户安装下,新建的文件夹或者安装位置的权限没有给到oracle用户,则将权限进行轮转递归将文件夹及其下属所有文件权限归属oracle用户。
注:对于oracle的客户端字符编码,根据个人业务选择合适的编码方式,默认的编码方式为ZHS16GBK,如有特殊需求,可自行编辑,本人在项目中的字符编码方式为AL32UTF8,支持更好的中文。
4、安装完oracle后进行控制台启动过程中可能会产生ORACLE not available ORA-27101错误的错误,原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正常启动,共享内存并没有分配给当前实例.所以,通过设置实例名,再用操作系统身份验证的方式,启动数据库。这样数据库就正常启动了,就不会报ORA-01034和ORA-27101两个启动异常了。

SQL>shutdown immediate;
SQL>startup;

将数据库服务启动即可解决。

5、最后可能你虚拟机的共享内存问题,看下数据库的配置文件是否对应了512M内存?还是你设置的大了,本身给的不足?

1.先看oracle的监听和oracle的服务是否都启动了。
启动oracle监听:cmd命令行窗口下,输入lsnrctl start,回车即启动监听。
2.查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“orcl”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=orcl
3.再输入sqlplus /nolog,回车
再输入 conn / as sysdba;回车
4.再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。
5.过几秒钟等命令运行完成,就能连接了。这个时候,可以输入"select * from user_tables;"测试一下,看是否有查询结果。
如果出现上面查询结果,那说明基本已经成功了。此时返回PL/SQL客户端界面就可以成功登录。如果还是不行请尝试修改密码进行以下步骤

oracle自启动设置

[root@oracledb ~]# su - oracle
Last login: Tue Mar  1 14:45:37 CST 2022 on tty1
[oracle@oracledb ~]$ cd $ORACLE_HOME
[oracle@oracledb 11.2.0]$ pwd
/data/app/oracle/product/11.2.0
[oracle@oracledb bin]$ dbstart 
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: ./dbstart ORACLE_HOME
#说明目前不能通过dbstart脚本知己启动Oracle
[oracle@oracledb bin]$ vi dbstart 
#编辑 dbstart,将ORACLE_HOME_LISTNER=$1修改成 ORACLE_HOME_LISTNER=$ORACLE_HOME 前提是$ORACLE_HOME环境设置正确,或者直接写绝对路径
[oracle@oracledb bin]$ vi /etc/oratab 
#asp:/data/app/oracle/product/11.2.0:N 改为 asp:/data/app/oracle/product/11.2.0:Y
#最后的Y作用:是否允许dbstart来启动数据库
[root@oracledb ~]# vi /etc/rc.d/rc.local 
#在rc.local文件后添加开机启动oracle脚本
su oracle -lc "/data/app/oracle/product/11.2.0/bin/lsnrctl start"
su oracle -lc /data/app/oracle/product/11.2.0/bin/dbstart

若重启为开启则查看文件是否有相应权限

ll /etc/rc.d/rc.local 

若没有权限则赋予权限

chmod +x rc.local
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos安装Java环境和oracle数据库 的相关文章

  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • Linux下添加应用程序图标

    为没有快捷方式的程序生成快捷方式图标 以SecureCRT为例 生成 desktop图标 编辑文本文件 xff0c 命名为SecureCRT desktop 内容如下 xff1a Desktop Entry Name 61 SecureCR
  • 如何改变Debian桌面 或者 gnome桌面图标的大小

    要改变Debian桌面图标的size xff0c 我们在图标上点击右键 xff0c 会有一个stretch选项 xff0c 通过这个 xff0c 可以用托拽的方法 xff0c 一个一个来改变图标大小 但这个方法很费劲 xff0c 而且托拽的
  • gradle,gradle/wrapper,build.gradle区别

    1 gradle 跟 maven ant一样是构建工具 2 gradle wrapper Gradle Wrapper是Gradle项目的一部分 引入gradle wrapper xff0c 通过读取配置文件中gradle的版本 xff0c
  • AI一般是用来制作什么的

    AI一般用来制作logo 分页 xff0c 海报等等 面板堆栈的话就是很多功能堆放的位置 一般打印出来的话用cmyk模式 如果是在web端的话用RGB模式 xff0c 因为cmyk模式在你进行存储的过程中颜色可能会丢失 出血值就是在你打印东
  • NetworkX画图:nx.draw_networkx(函数详解)

    NetworkX画图 xff1a nx draw networkx 函数详解 draw networkx span class token punctuation span G span class token punctuation sp
  • 小程序代码构成

    了解项目的基本结构 1 pages xff1a 用来存放所有小程序的页面 2 utils xff1a 用来存放工具性质的模块 xff08 例如 xff1a 格式化事件的自定义模块 xff09 3 app js xff1a 小程序项目的入口文
  • 操作系统笔记

    第一章 xff1a 导论 1 计算机系统 的四个组成成分 xff1a 计算机硬件 操作系统 系统程序和用户 可以大致分为硬件 软件和数据 定义 xff1a 现代通用计算机系统由一个或多个CPU和若干设备控制器通过共同的总线相连而成 xff0
  • 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.2

    HP Socket 是一套通用的高性能 TCP UDP HTTP 通信框架 xff0c 包含服务端组件 客户端组件和 Agent 组件 xff0c 广泛适用于各种不同应用场景的 TCP UDP HTTP 通信系统 xff0c 提供 C C
  • java根据图片的url地址下载图片到本地

    java根据图片的url地址下载图片到本地 已知图片的url地址 xff0c 通过java代码下载到本地 xff0c 直接上代码 package demo import java io ByteArrayOutputStream impor
  • 【Android -- 动画】Lottie 动画的基本使用

    一 简介 Lottie 是 Airbnb 开源的一个面向 iOS Android React Native 的动画库 xff0c 能分析 Adobe After Effects 导出的动画 xff0c 并且能让原生 App 像使用静态素材一
  • 【Android Studio 使用教程】-- 配置 Kotlin

    简介 Kotlin 是一个基于 JVM 的新的编程语言 xff0c 由 JetBrains 开发 JetBrains xff0c 作为目前广受欢迎的 Java IDE IntelliJ 的提供商 xff0c 在 Apache 许可下已经开源
  • SSM框架整合教程(Spring+SpringMVC+MyBatis)

    SSM框架 1 ssm在各层中的作用 ssm框架与ssh框架类似 xff0c 使用springmvc代替strusts2 mybatis代替hibernate Spring xff1a 主要作用是依赖注入 控制反转以达到解耦的目的 xff0
  • 虚幻引擎VR游戏开发基础教程

    虚幻引擎VR游戏开发基础教程 了解如何使用 Oculus Quest 2 的蓝图在虚幻引擎 4 中从头开始构建基本的 VR 机制 课程英文名 xff1a Unreal Engine VR Development Fundamentals 此
  • 对于人工智能的认识,我们需要更深入全面的理解

    20世纪50年代以来 xff0c 计算机科学家们致力于研发与人类智能类似的程序 当这些程序被开发到一定水平后 xff0c 它们就可以在一些特定的应用场景中替代人类 它们被称为人工智能 xff08 AI xff09 和认知计算 20世纪80年
  • [技巧]如何使用Windows 10 1903中的Windows Sandbox沙箱功能

    微软计划在五月底向大家推送 Windows 10 1903 更新 xff0c 感兴趣的 Insider 测试者们已经可以通过预览通道 xff08 Release Preview Ring xff09 来获得这个最新版本 Windows 10
  • httprunner4.x问题: 运行testcase时, 调用的用例会运行两次

    httprunner4 x问题 运行testcase时 调用的用例会运行两次 问题描述 在测试用例脚本A中使用RunTestCase带参数调用其他api脚本B来构建测试用例时 发现每次运行用例都会有两次运行 产生两份运行日志 第一次 运行脚
  • httprunner中使用JMESPath进行数据提取技巧

    在使用httprunner时 其进行数据提取是使用JMESPath进行的 httprunner示例中的提取未涉及一些稍复杂的提取 所以专门学习了一下JMESPath的使用 做个总结 JMESPath 官方文档路径 https jmespat
  • 解决httprunner3.x上$符号无法当成普通符号用的方法

    前言 由于要测试的api中会涉及 符号的传递 要求其放在参数中当一个普通符号使用 但由于httprunner框架处理逻辑 会将如 coe当成一个变量 从而报错找不到该变量的值 现象 接口某参数为 coeConfig coal 08d99cc
  • 使用jmeter实现对jar包的调用

    一 前言 在我们测试接口的过程中 xff0c 可能有时需要用到第三方jar包来生成一些测试数据 xff08 如有时需要对参数的输入值使用第三方jar包进行加密操作 xff09 xff0c 涉及到这种的情况 xff0c 普遍做法是 xff1a
  • centos安装Java环境和oracle数据库

    centos7安装Java开发环境及oracle踩坑系列 centos7安装jdk和redisjdk安装Redis安装Redis自启动 centos7中的oracle安装踩坑位置oracle自启动设置 centos7安装jdk和redis