Navicat连接Oracle

目标:

1.Navicat连接Oracle数据库,报错

无监听程序。

一、下载安装Navicat15

https://zhuanlan.zhihu.com/p/675991635

下载安装资源

链接:百度网盘 请输入提取码

提取码:1u1q

二、测试SQL PLUS连接数据库

在全部程序--》Oracle--》SQLPLUS

找到 SQL PLUS程序

2.1 关闭ORCL和TNSListener服务是否可以连接

我们在服务中,关闭Oracle的ORCL服务和TNSListener服务。

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 5月 31 22:29:48 2024

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

请输入用户名:  sys
输入口令:
ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:  system
输入口令:
ERROR:
ORA-12560: TNS: 协议适配器错误

 很明显,TNS服务访问失败,连接错误。

2.2 开启ORCL服务和TNSListener服务

可以正常连接Oracle数据库。

2.3 设置ORALE添加到环境变量 

如果想在cmd中直接执行ORACLE程序,可以添加环境变量

我的电脑--》属性--》环境变量

Path中新增加ORACLE执行程序目录。 

保存以后,启动cmd.exe。执行sqlplus成功

 2.4 SQLPLUS以DBA身份登录

sqlplus / as sysdba

以DBA身份连接成功。说明ORACLE数据库本身OK,是可以连接成功的。

2.5 查询ORACLE数据库中当前服务

SELECT name FROM v$services;

这条SQL语句会从动态性能视图v$services中查询服务名称列表。 

ORACLE中确实存在ORCL服务,服务名称为 orcl.211.55.4

通过以下指令查看当前服务名

select global_name from global_name;

 2.6 查看数据库实例状态

SELECT instance_name FROM v$instance;

查看数据库实例的状态。

说明Oracle创建的数据库实例是一个,为orcl,且当前实例可用。 

2.7 查看当前容器

show con_name;

2.8 SQLPLUS普通账号登录

sqlplus balll/dbpwd123@10.52.11.6/ORCLPDB1

 sqlplus 用户名/用户密码@HOST/服务名

三、确认监听程序

3.1 查看当前监听程序状态信息

lsnrctl status

C:\Users\zhouronghua>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 31-5月 -2024 23:55:00

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期                  31-5月 -2024 22:34:54
正常运行时间              0 天 1 小时 20 分 6 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\app\zhouronghua\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          c:\app\zhouronghua\diag\tnslsnr\zhouronghua\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.55.4)(PORT=1521)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

测试连接是否成功,连接失败,报错:

 发现问题:

1、确定的是IPC监听协议,TCP协议的监听地址,采用的是10.211.55.4,而我们访问使用的是localhost,或者127.0.0.1。IP地址需要统一

2.

3.1.1 什么是IPC协议?

Oracle IPC (Inter-Process Communication) 监听协议是指Oracle数据库进程间通信所使用的协议。Oracle数据库的实例可以通过IPC协议进行进程间的通信,以便进行例如会话管理、连接管理等操作。

在Oracle中,IPC监听协议通常是通过本地连接(也称为共享内存)实现的,这意味着客户端和服务器可以通过在同一台机器上的共享内存段进行通信。

如果您想要配置Oracle的IPC监听协议,您需要确保您的Oracle数据库已经安装并正确配置。然后,您可以通过编辑Oracle的监听配置文件(listener.ora)来配置IPC监听协议。

3.1.2 监听程序配置

Oracle 监听是一个数据库连接管理器,它允许客户端应用程序与 Oracle 数据库进行通信。当客户端应用程序请求连接到数据库时,它们将首先与监听器通信,监听器会确定数据库上的服务并将连接请求转发到相应的实例。

Oracle 监听器可以在服务器端或客户端上安装。在服务器端,它是一个单独的进程,称为 LSNRCTL。在客户端上,它是一个库,称为 Oracle Net。

  • LSNRCTL程序

C:\Windows\System32>lsnrctl --help

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 01-6月 -2024 09:49:03

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> help
以下操作可用
星号 (*) 表示修改符或扩展命令:

start               stop                status
services            version             reload
save_config         trace               change_password
quit                exit                set*
show*

以上是常用的指令参数。

3.2 监听程序参数配置

监听状态中,标识了监听程序参数文件位置。

监听程序参数文件          C:\app\zhouronghua\product\11.2.0\dbhome_1\network\admin\listener.ora

即:$ORACLE_HOME/network/admin

原监听文件lisener.ora配置如下:

# listener.ora Network Configuration File: C:\app\zhouronghua\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = C:\app\zhouronghua\product\11.2.0\dbhome_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ONLY:C:\app\zhouronghua\product\11.2.0\dbhome_1\bin\oraclr11.dll")))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))))ADR_BASE_LISTENER = C:\app\zhouronghua

字段含义表示 

  • LISTENER 是监听器的名称。

  • DESCRIPTION_LIST 和 DESCRIPTION 定义了监听器的描述。

  • ADDRESS 定义了监听器用于接收连接的网络地址和端口。

  • PROTOCOL 指定了使用的网络协议(如TCP)。

  • HOST 指定了监听器所在的主机名或IP地址。

  • PORT 指定了监听器监听的端口号。

  • SID_LIST_LISTENER 定义了数据库服务的SID列表,用于本地(静态注册)命名方法。

  • GLOBAL_DBNAME 定义了数据库的全局数据库名称。

  • ORACLE_HOME 定义了Oracle软件安装的路径。

  • SID_NAME 定义了数据库的SID。

  • ADR_BASE_LISTENER 定义了自动诊断仓库的基路径。

请根据实际环境中的主机名、端口号、Oracle Home路径和数据库的全局数据库名称等信息进行相应的修改。

主机名修改为localhost,端口使用默认端口就行。不用修改。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\zhouronghua\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\zhouronghua\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )

   )

# 监听器配置

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )

    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )

  )

ADR_BASE_LISTENER = C:\app\zhouronghua

调换顺序,TCP协议的优先级前置。

因为我们创建的全局DB文件库是 ORCL。

存在两种监听描述符:

IPC协议的:KEY为EXTPROC1521

TCP 协议的:主机名:localhost. 端口:1521

监听配置文件修改后,重启监听才能生效。

lsnrctl stop
lsnrctl start

3.2 启动监听程序

方法一:可以采用cmd.exe执行指令 lsnrctl start启动监听程序。需要以管理员权限运行cmd.exe

 lsnrctl start

采用此命令启动监听程序。

方式二:采用 服务 --》 启动监听程序 OracleOraDb11g_home1TNSListener

启动监听程序以后,再次查看监听程序状态。

lsnrctl status

四、网络服务名配置

Oracle的tnsnames.ora文件是网络服务名配置文件,它用于配置客户端如何连接到Oracle数据库服务器。

4.1 网络服务名配置文件

配置文件目录 $ORACLE_HOME/network/admin/tnsnames.ora

# tnsnames.ora Network Configuration File: C:\app\zhouronghua\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.ORACLR_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(CONNECT_DATA =(SID = CLRExtProc)(PRESENTATION = RO)))ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl.211.55.4)))

字段含义 

  • ORCL: 网络服务名,可以自定义。
  • (DESCRIPTION ... ): 描述如何连接到数据库。
  • (ADDRESS ... ): 指定数据库服务器的地址。
  • PROTOCOL: 通信协议,如TCP。
  • HOST: 数据库服务器的主机名或IP地址。
  • PORT: 数据库服务监听的端口,默认为1521。
  • (CONNECT_DATA ... ): 指定连接数据库的详细信息。
  • SERVER = DEDICATED: 指定连接类型,这里是专用服务器。
  • SERVICE_NAME = mydbservice: 数据库服务名。

要点:

  • 每个网络服务名必须在tnsnames.ora文件中独占一行,并以等号结束行。
  • 不要在网络服务名或参数名的等号周围添加空格。
  • 使用PROTOCOL, HOST, PORT, SERVER, 和 SERVICE_NAME 等关键字来指定配置。
  • 使用#开始的行是注释,注释内容不会被解析。

配置文件定义了两个服务

ORACLR_CONNECTION_DATA服务名:IPC协议服务,SID = CLRExtProc

ORCL服务:TCP连接服务,HOST:localhost, 端口:1521.服务名:orcl.211.55.4

这个配置与监听程序中是一致的。

4.2 测试网络服务

Oracle提供了tnsping来测试配置。相当于使用PING方式访问网络服务。

服务配置中定义了两个网络服务名,我们测试是否可以访问这两个服务。

# 服务名不区分大小写
tnsping orcl

测试PING ORACLR_CONNECTION_DATA服务

两个网络服务都可以PING通。

五、网络连接数据库配置

从网络访问数据库时,怎么连接到数据库呢?sqlnet.ora 文件是 Oracle 网络配置文件,用于定义如何处理连接到数据库的网络环境

5.1 数据库网络访问配置

数据库网络访问配置,配置文件目录 $ORACLE_HOME/network/admin/sqlnet.ora

# sqlnet.ora Network Configuration File: C:\app\zhouronghua\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

字段含义表示

  • SQLNET.AUTHENTICATION_SERVICES:用于指定Oracle是否应使用特定的认证方法。可以设置的值为ALL、NONE、NTS(操作系统认证)。
  • NAMES.DIRECTORY_PATH:用于指定Oracle的命名方法可以设置的值为tnsnames(网络服务命名方法)、onames、hostnames。hostnames:主机命名(Host Naming):使 TCP/IP 环境中的用户能够通过其现有名称解析服务来解析名称。tnsnames本地命名:使用在每个客户机的 tnsnames.ora 文件中配置和存储的信息查找网络地址。目录命名:将数据库服务或网络服务名解析为连接描述符,该描述符存储在中央目录服务器中。

    Oracle Names:这是由 Oracle Names 服务器系统构成的 Oracle 目录服务,这些服务器可以为网络上的每个服务提供由名称到地址的解析
    外部命名:使用受支持的第三方命名服务
    对于只有几个数据库的小型组织来说,应使用主机命名将名称存储在现有名称解析服务中,也可使用本地命名将名称存储在客户机上的 tnsnames.ora 文件中。
    对于有多个数据库的大型组织来说,应使用目录命名将名称存储在集中管理的符合 LDAP 的目录服务器中。EZCONNECT表示简单连接,就是说可以不用在tnsnames.ora文件去查询服务名就可以进行数据库的连接,比如我们可以这样进行连接: username/password@hostname:port/service_name

  • SQLNET.INBOUND_CONNECT_TIMEOUT:用于指定Oracle监听程序等待客户端连接的时间(秒)。
  • SQLNET.SEND_REMOTE_LOGIN:用于指定Oracle是否应发送远程登录参数。
  • SQLNET.RECV_TIMEOUT:用于指定Oracle监听程序等待客户端发送的时间(秒)。
  • SQLNET.EXPIRE_TIME:用于指定Oracle会话在超时之前可以保持打开状态的时间(分钟)。

5.2 测试数据库网络连接

CONNECT username/password [@db_alias] AS [SYSOPER | SYSDBA] ;

可以看到这个语法中,有一个db_alias,这个东西是什么呢?这个db_alias就是在tnsnames.ora中定义的数据库的别名,比如: #ORCL是个别名

sqlplus
GRANT sysdba TO system;
GRANT sysoper TO system;
SQL> CONNECT system/xxxx
已连接。
SQL> CONNECT system/xxxx@orcl as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

测试本地连接数据库成功,但是采用连接网络服务的方式失败。

TNS监听程序无法识别连接描述符中请求的服务。

创建OracleServiceOrcl服务的方法:

oradim -NEW -SID orcl -STARTMODE manual -PFILE “Oracle安装目录/11.2.0/dbs/init.ora”

oradim -NEW -SID orcl -STARTMODE manual -PFILE "C:\app\zhouronghua\product\11.2.0\dbhome_1\dbs\init.ora"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/338691.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用最小花费爬楼梯 | 动态规划

1.使用最小花费爬楼梯 题目连接:746. 使用最小花费爬楼梯 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开…

Spring系列-SpringMvc父子容器启动原理解析

1、Spring整合SpringMVC 特性: 说到Spring整合SpringMVC唯一的体现就是父子容器: 通常我们会设置父容器(Spring)管理Service、Dao层的Bean, 子容器(SpringMVC)管理Controller的Bean .子容器可以访问父容器的Bean, 父容器无法访…

【惯性传感器imu】—— WHEELTEC的惯导模块的imu的驱动安装配置和运行

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、IMU驱动安装1. 安装依赖2. 源码的下载3. 编译源码(1) 配置固定串口设备(2) 修改luanch文件(3) 编译 二、启动IMU1. 运行imu2. 查看imu数据 总结 前言 WHEE…

【C++进阶】深入STL之string:模拟实现走进C++字符串的世界

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C模板入门 🌹🌹期待您的关注 🌹🌹 ❀STL之string 📒1. string…

图解 Python 编程(10) | 错误与异常处理

🌞欢迎来到Python的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年6月2日&…

uni-app全局弹窗的实现方案

背景 为了解决uni-app 任意位置出现弹窗 解决方案 一、最初方案 受限于uni-app 调用组件需要每个页面都引入注册才可以使用,此方案繁琐,每个页面都要写侵入性比较强 二、改进方案 app端:新建一个页面进行跳转,可以实现伪弹窗…

认识微服务,认识Spring Cloud

1. 介绍 本博客探讨的内容如下所示 什么是微服务?什么是springcloud?微服务和springcloud有什么关系? 首先,没有在接触springcloud之前,我写的项目都是单体结构, 但随着网站的用户量越来越大,…

list的简单模拟实现

文章目录 目录 文章目录 前言 一、使用list时的注意事项 1.list不支持std库中的sort排序 2.去重操作 3.splice拼接 二、list的接口实现 1.源码中的节点 2.源码中的构造函数 3.哨兵位头节点 4.尾插和头插 5.迭代器* 5.1 迭代器中的operator和-- 5.2其他迭代器中的接口 5.3迭代器…

【TCP协议中104解析】wireshark抓取流量包工具,群殴协议解析基础

Tcp ,104 ,wireshark工具进行解析 IEC104 是用于监控和诊断工业控制网络的一种标准,而 Wireshark则是一款常用的网络协议分析工具,可以用干解析TEC104 报文。本文将介绍如何使用 Wireshark解析 IEC104报文,以及解析过 程中的注意事项。 一、安…

C语言-01_HelloWord

文章目录 1.C程序运行机制2.HelloWorld的剖析① main()② 函数体③ printf()④ 标准库、头文件 3.输出3.1 printf()标准格式3.2 占位符3.3 输出格式 1.C程序运行机制 过程1:编辑 编写C语言源程序代码,并已文件的形式存储到磁盘中。源程序文件以“.c”作…

dubbo复习:(19)dubbo 和spring整合(老古董)

一、服务端依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM…

【Linux】Linux工具——gcc/g++

1.使用vim更改信用名单——sudo 我们这里来补充sudo的相关知识——添加信任白名单用户 使用sudo就必须将使用sudo的那个账号添加到信用名单里&#xff0c;而且啊&#xff0c;只有超级管理员才可以添加 信用名单在/etc/sudoers里 我们发现它的权限只是可读啊&#xff0c;所以…

cocos入门5:编辑器界面介绍

Cocos Creator是一款功能强大的跨平台游戏开发工具&#xff0c;其编辑器界面设计直观易用&#xff0c;提供了从资源管理、场景编辑到脚本编写等一站式解决方案。下面是对Cocos Creator编辑器界面的详细介绍&#xff1a; 一、界面布局 Cocos Creator编辑器界面通常包含以下几个…

渲染100为什么是高性价比网渲平台?渲染100邀请码1a12

市面上主流的网渲平台有很多&#xff0c;如渲染100、瑞云、炫云、渲云等&#xff0c;这些平台各有特色和优势&#xff0c;也都声称自己性价比高&#xff0c;以渲染100为例&#xff0c;我们来介绍下它的优势有哪些。 1、渲染100对新用户很友好&#xff0c;注册填邀请码1a12有3…

IDeal下的SpringBoot项目部署

一、首先找到自己的sql文件&#xff0c;没有就从数据库挪进来 二、在Maven下打包一下&#xff08;点击package&#xff09;&#xff0c;看到BUILD SUCCESS就是打包好了 三、将上面两个文件分别挪到 linux 中对应的文件&#xff0c;没有就创建一个&#xff08;我的是spring_blog…

常见算法(基本查找、二分查找、分块查找冒泡、选择、插入、快速排序和递归算法)

一、常见算法-01-基本、二分、插值和斐波那契查找 1、基本查找/顺序查找 需求1&#xff1a;定义一个方法利用基本查找&#xff0c;查询某个元素是否存在 数据如下&#xff1a;{131&#xff0c;127&#xff0c;147&#xff0c;81&#xff0c;103&#xff0c;23&#xff0c;7&am…

WordPress子比主题美化-首页动态的图片展示

WordPress子比主题首页动态的图片展示 WordPress子比主题首页添加动态的图片展示&#xff0c;其他程序也可以用&#xff0c;复制代码到相应位置即可&#xff0c;也可作为指定分类&#xff0c;重点内容等&#xff0c;可以适合各个场景&#xff0c;需要的自取。 图片展示: 教程…

Spring源码之BeanDefinition的加载

Spring源码之BeanFactory和BeanDefinition BeanFactory和BeanDefinitionBeanFactoryBeanDefinition源码分析创建AnnotationConfigApplicationContext对象注册配置类refresh方法 BeanFactory和BeanDefinition BeanFactory BeanFactory是Spring提供给外部访问容器的根接口&…

MVC和MVVM

MVC Model层&#xff1a;用于处理应用程序数据逻辑的部分&#xff0c;通常负责在数据库中存取数据 View&#xff08;视图&#xff09;处理数据显示的部分。通常视图是依据模型数据创建的 Controller&#xff08;控制器&#xff09;是处理用户交互的部分。通常控制器负责从视…

Yolov10笔记

一、前言 清华大学团队设计的Yolov10. 在这项工作中&#xff0c;我们主要从后处理和模型结构两方面进一步优化YOLO系列模型的性能和延迟平衡。我们首先为YOLO引入了端到端训练的一致双重分配&#xff0c;这在大大降低推理延迟的情况下保证了性能。此外&#xff0c;我们针对YOLO…