V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

没有安装 Oracle 的电脑,应该如何连接到 oracle 数据库?

  •  
  •   LeeReamond · 2021-01-23 17:17:16 +08:00 · 2316 次点击
    这是一个创建于 1384 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,服务器部署在内网 IP 10.2.0.18 , 在服务器上通过这个 IP 可以正常访问 oracle 服务。

    现在换了一台另一台 windows10 机器,按网上教学操作了一下,无法连接,有没有大佬指导一下原因。

    我做了如下操作:

    1 、安装 windows10 20H2 企业版系统
    2 、安装 microsoft vc++ 2015-2019 restribuiltable
    3 、从 oracle 官网下载 instant client 19.0 for windows
    4 、解压后环境变量中配置 OCI_LIB64
    5 、解压目录中配置 tnsnames.ora
    6 、使用 sqlplus
    

    得到错误

    ORA-12560: TNS: 协议适配器错误
    

    使用 navicat 连接的话则会闪退。

    21 条回复    2021-01-24 15:53:04 +08:00
    nuandong
        1
    nuandong  
       2021-01-23 19:16:33 +08:00 via iPhone
    plsql 也不能用吗
    dxySheldon
        2
    dxySheldon  
       2021-01-23 19:55:05 +08:00 via Android
    oracle sql developer 试试
    liprais
        3
    liprais  
       2021-01-23 19:56:39 +08:00
    jdbc odbc 都行
    找个 jdbc 的客户端就行
    hoyixi
        4
    hoyixi  
       2021-01-23 19:59:23 +08:00
    允许远程访问了吗
    geekboy
        5
    geekboy  
       2021-01-23 20:00:16 +08:00
    navicat 就行
    LeeReamond
        6
    LeeReamond  
    OP
       2021-01-23 20:00:57 +08:00 via Android
    @hoyixi 在服务器上是通过局域网 ip 访问的,应该就是能远程访问吧,要不然会被拒绝吧。我也是刚用 oracle,不太懂。19c 默认典型安装,服务器类,我感觉应该不是服务器方面的问题
    LeeReamond
        7
    LeeReamond  
    OP
       2021-01-23 20:08:22 +08:00
    @geekboy navicat 连 mysql 没问题,连 oracle 闪退。server 上的 navicat 连接则没问题,我推测还是客户端配置不正确
    LeeReamond
        8
    LeeReamond  
    OP
       2021-01-23 20:11:42 +08:00
    @liprais
    @dxySheldon
    @nuandong 这些都是要换客户端软件的吧,我要实现的是用 python 连接,所以最好是配置好客户端,所有服务都能正常访问,比如 sqlplus 和 navicat 和 python 都能连,所以只有单一软件能连上没什么意义啊
    liprais
        9
    liprais  
       2021-01-23 20:13:05 +08:00
    @LeeReamond
    pyodbc
    LeeReamond
        10
    LeeReamond  
    OP
       2021-01-23 20:14:26 +08:00
    @liprais
    我之前试过用 pyodbc 连接,没成功,不太懂 odbc 是个什么概念,倒是 cx_Oracle 无痛连上了。但是 cx_Oracle 是依赖 oracle 原生客户端服务的
    LeeReamond
        11
    LeeReamond  
    OP
       2021-01-23 20:15:09 +08:00
    @LeeReamond 毕竟之前用 mysql 和 redis 之类的数据库也没听说过还需要装个专门的客户端才能驱动程序
    qq515391365
        12
    qq515391365  
       2021-01-23 20:28:29 +08:00
    Navicat 连接 oracle 要去官网下载对应版本的 dll 文件.
    LeeReamond
        13
    LeeReamond  
    OP
       2021-01-23 20:54:13 +08:00 via Android
    @qq515391365 官网是指 navicat 官网还是 oracle 官网?那台服务器上的 navicat 倒是什么都不用额外装就能连
    wuwukai007
        14
    wuwukai007  
       2021-01-24 00:35:28 +08:00 via Android
    oracle 不都用的 plsql 吗
    hcymk2
        15
    hcymk2  
       2021-01-24 01:09:04 +08:00
    dbeaver 或者是其他通过 jdbc 形式访问的 GUI 工具。
    EscYezi
        16
    EscYezi  
       2021-01-24 03:09:41 +08:00 via iPhone
    navicat 要在 oracle 官网下对应版本的 instant-client,覆盖掉 navicat 自带的
    idblife
        17
    idblife  
       2021-01-24 09:21:41 +08:00 via iPhone
    jdbc 客户端,推荐 datagrip
    binbinbbb
        18
    binbinbbb  
       2021-01-24 14:17:34 +08:00 via iPhone
    datagrip
    leon0903
        19
    leon0903  
       2021-01-24 15:18:12 +08:00
    三个月前刚接触 oracle 的来说下吧 。 主要分两种。 一种方式是用 楼上说的 oracle sql developer, 这个是 oracle 官方的免费工具,基于 jdbc 的,不需要额外下载或者配置其他东西,下载解压 然后填写数据库信息连接就 ok 了。 一种用 pl sql(navicat)那种,那种如果你本机没有安装 oracle 的话, 需要你去额外下载 oracle 客户端依赖包,主要是 oci.dll ,然后还要配置 tnsnames 文件,并且放到指定路径或者环境变量里,一切 ok 之后 才可以用客户端连上。
    leon0903
        20
    leon0903  
       2021-01-24 15:18:40 +08:00
    navicat 闪退 可能是 oci 版本不对
    LeeReamond
        21
    LeeReamond  
    OP
       2021-01-24 15:53:04 +08:00 via Android
    @leon0903 我后来按楼上说的,进入 navicat 设置里面,把默认那个 oci.dll 换成新下载的,就能用了,不过我配置的 tnsnames 没有发挥作用,后面又在不同机器上架了几个,没改 tns 都能连上,不知道为什么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5493 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:39 · PVG 11:39 · LAX 19:39 · JFK 22:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.