• 虚拟机无法访问宿主机oracle数据库


    很久没打开本地的linux虚拟机,发现之前运行没问题的程序出问题了:连接不上oracle数据库。数据库是装在宿主机上的,在宿主机本地登录没有问题。
    排查了虚拟机网络和防火墙,都没有问题。最后发现在宿主机本地127.0.0.1 1521端口是通的,但是用局域网ip+端口的方式不通。通过以下方式成功解决问题。

    1.修改配置

    (1)打开Windows上Oracle Net Manager应用
    在这里插入图片描述
    (2)配置listener
    在这里插入图片描述
    这里地址2配置了tcp/ip模式,其实监听ip为127.0.0.1,监听端口为1521
    也就是,客户端访问数据库时,需要连接的ip端口。
    (3)保存修改
    在这里插入图片描述
    (4)通过配置文件修改配置
    lsnrctl监听器命令,lsnrctl可以调出监听器状态,这里可以看到监听器配置文件的位置:
    在这里插入图片描述
    通过修改配置文件,可以达到通过windows oracle net manager修改配置一样的效果。

    2.重启监听器服务

    (1)关闭监听器:
    lsnrctl stop
    在这里插入图片描述
    (2)启动监听器命令为:
    lsnrctl start
    在这里插入图片描述
    **注意:**不关闭监听器,直接执行lsnrctl stop,起不到重启的效果。

    3.重启oracle网络服务

    net start OracleServiceORCL
    在这里插入图片描述

    4.配置效果

    (1)配置为127.0.0.1跟localhost是一样的效果,只有本机能通过127.0.0.1访问到数据库,通过ip地址无法访问数据库,并且1521端口不通。我一开始遇到的问题就是这么配置的;
    (2)配置具体ip,可以实现通过具体ip访问数据库,可以解决我的问题;
    (3)对于机器的IP是随机ip的情况,显然第二种配置无法满足要求,这时候应该配置IP为主机名。用这种方式成功又方便地解决问题。

  • 相关阅读:
    java面向对象
    JAVA并发编程--3 理解volatile
    y107.第六章 微服务、服务网格及Envoy实战 -- 可观测应用之指标和日志(十八)
    Linux运行环境搭建系列-Kafka安装
    C++中的typeid运算符
    C++ STL使用技巧
    【软考经验分享】软考-中级-嵌入式备考
    附录3-form标签常用属性
    Apacha Flume
    【笔记】从ES到ClickHouse:B站海量日志分析场景迁移的实践与思考
  • 原文地址:https://blog.csdn.net/weixin_42119324/article/details/125421127