客户机中PLSQL DEV访问虚拟机中的ORCLE11g,错误百出!

创建时间: 2017/10/14 18:44
作者: CNSIMO
标签: ORACLE
忙了一下午,只有两个字形容:麻烦!
 
安装ORACLE1g
 
首先,我已经提前在虚拟机上配置了windows2008+oracle11g,为什么用server2008呢?我没有别的,win10做虚拟机觉得不太好,win7镜像还得下载,你懂的。 然后就是oracle11g是去某电脑上拷过来的,我是一个十分爱惜流量的人,嘿嘿。
我们老师为了让我们更清楚区分数据库软件安装和数据库配置,所以在安装oracle11g的时候选择的是”只安装数据库软件“(记得是第二个选项),然后安装的时候字符集都设置的UTF8,其他的配置基本上都是保持的默认。
好了,安装的事情不细说,一般情况下只要是主机没问题,检测条件通过,安装都是不成问题的,下面就开始了配置数据库。
首先使用,有的可能不是。
例如我的web管理页面:https://server2008:1158/em,我的数据库监听端口是1521。
管理页面如下:
如果刚安装完,红框中的状态不对,那么考虑重装或者重启ORACLE各项服务或者重启ORACLE服务器。
重启ORACLE服务器的操作如下:
打开cmd输入以下命令:
sqlplus / as sysdba
shutdown immediate
startup
然后说ORACLE这几个配置工具的功能:
  • DCA:管理数据库(创建、删除等等)
  • NCA:配置数据库网络服务(监听、服务名等)
  • Net Manager:网络综合管理工具(监听、服务名等具体信息查看更改等)
还有一个工具sqlplus也很常用,使用它访问ORACLE数据库地操作如下(cmd中):
如果是普通用户
sqlplus username/password@hostname/tnsname
如果是sysdba用户,例如sys
sqlplus sys/password@hostname/tnsname as sysdba
后面用到地时候你可能会更明白一些。
 
然后还有三个很重要的文件,其中两个需要知道一下:
注意路径哦!格式:{database_base}\network\admin。
在Net Manager或者NCA中更改监听或者服务名的信息后可能会映射到这两个文件,例如我在Net Manager中更改了LISTEN的地址,在listener.ora文件中是有体现的,可以打开看看,但是最好不要手动地去更改里面地内容,因为一不小心感觉没错就可能被人坑了。想要更改,还是在Net Manager中更改比较合适,例如现在我在Net Manager中将LISTEN地监听端口由1521变成了1522,打开listener.ora文件可以看到相应的地方也变了。
Tip:如果你在你不知道什么情况的情况下,你使用Net Manager做了一些操作,而且你也忘了原来是什么了,不要紧,关闭Net Manager窗口的时候会提示你是否保存,选择否即可恢复!
 
说了这么多没用的,我的目的还没实现呢,怎么在真机中访问虚拟机内的数据库呢?
先说明一下预先条件:
  1. 我所说的话,都是假设你对计算机了解,并且有基础,思维敏捷,熟悉VM虚拟机,不懂的请提问。
  2. 宿主机和虚拟机能够互相ping通,如果不行,尝试将连接方式改为NAT,宿主机中的VMNet8网卡ipv4设置为自动获取IP。
  3. 宿主机中的ORACLE的各项服务都已经正常启动。
  4. 还得知道环境变量怎么配置,不懂的自动百度学习。
 
我的机器配置如下:
  • 虚拟机:VM12.5.7版本
  • 宿主机:win10专业版1703
  • 虚拟机:server2008r2 企业版,内存2G
    • oracle:11g,数据库实例名称STD,全局数据库名STD.CNSIMO.CN,所有密码唯一:Admin2015,字符集:UTF8,语言:简体中文
 
连接步骤
 
  1. 官网下载instant client,http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
  2. 下载基础包和sqlplus包
  3. 一起解压出来后,得到一个文件夹,将它复制到任意位置,例如:D:\PLSQL Developer 12\
  4. 在D:\PLSQL Developer 12\instantclient_12_2中(以下简称{instantclient})新建文件夹network,在network中新建文件夹admin。
  5. {instantclient}\network\admin中新建记事本文件,下列代码复制进去并保存为utf-8格式,名称改为tnsnames.ora【后缀名txt->ora】,注意格式不能变(少一个多一个空格都不行)
 tip:请将STD.CNSIMO.CN改为自己的全局数据库名,HOST和PORT也改为自己的,首行的STD可以随便写。
STD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.138)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = STD.CNSIMO.CN)
    )
  )
  1. 打开PLSQL DEV12,找到【首选项】设置
  2. 然后,在connection中安装图示设置,instantclient的位置。

  1. 很重要的一步,到虚拟机注册表中查看NLS_LANG的值,若无此路径则直接查找NLS_LANG,复制此键值。
  2. 很重要的一步,在宿主机中新建系统环境变量NLS_LANG,值与虚拟机中保持一致!
            
  1. 很重要的一步,再新建系统环境变量TNS_ADMIN,值为{instantclient}\network\admin
            
  1. 更改环境变量PATH,添加值为{instantclient}。
  2. 然后cmd中,运行sqlplus命令连接远程数据库,命令为:sqlplus sys/Admin2015@192.168.111.138/STD.CNSIMO.CN as SYSDBA,下图代表连接成功。
       
  1. 重新打开PLSQL DEV,尝试连接,填写用户名密码,database下拉框中如果没有出现之前在tnsnames.ora首行写的名字STD,就手动输入STD,并作为SYSDBA连接。成功的话,会进入主界面,否则提示。
 
解决问题
 
好了,连接的常规步骤已经看完了,但是事实上好多时候并不能真正的如愿以偿,问题碰到了一堆,常见的问题描述可能如下:
  • ORA-12170: TNS:Connect timeout occurred
  • ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
  • ORA-12705: Cannot access NLS data files or invalid environment specified
 
先解决第一个问题,你可尝试ping一下你的远程主机,可能ping不通,所以需要你更改一下虚拟机和主机之间的网络连接方式;
然后第二个问题,导致这个问题的根本原因是在远程主机上该服务名并没有被监听程序监听,例如我通过sqlplus连接的时候将STD.CNSIMO.CN改为STD或者其它随便一个,都会报这个错误。解决方法如下:
    打开Net Manager,选择服务命名,点击加号添加服务,列表中显示的std仅仅具有本地意义,重要的是右边的服务名,设置成全局数据库名,连接类型选择 共享服务器。
                       
然后关闭Net Manager并保存配置。
再次尝试连接,如果还是连接不上,尝试重启ORACLE数据库!
Tip:网上可能查到的都是更改虚拟机中tnsnames.ora和listener.ora这两个文件,擅自更改后可能导致的问题是数据库连接不上、NetManager和NCA中部分功能无反应的问题。因为oracle对这两个文件的内容格式要求的太严格了。红框的首部不能有空格,蓝框的首部必须有空格!
                       
至于最后一个问题,请检查环境变量中的NLS_LANG的值是否和远程主机注册表中的值相同,切记不要手敲!如果还是这个问题,可能是你刚配置完环境变量,cmd的命令框还是之前开的,请重开一个cmd再次尝试。
 
 

客户机中PLSQL DEV访问虚拟机中的ORCLE11g,错误百出!的更多相关文章

  1. CentOS6.5(4)----宿主机无法访问虚拟机中的web服务解决方案

    宿主机无法访问虚拟机中的web服务 在Windows7宿主机中的VMware虚拟机中安装了CentOS6.5操作系统,并且基于Nginx搭建了Web服务器,网页刚刚搭建好的时候,通过宿主机的浏览器可以 ...

  2. 访问虚拟机中web服务的

    经常发现假如我们想弄一点小玩意或跑一些小demo,总是要不断的在自己的工作本本上搭建不同的运行环境,久而久之,本本上充斥着各种软件,速度下降了,同时管理也非常的不方便.于是想到用虚拟机来搭建运行环境, ...

  3. 访问虚拟机中的架设的Web服务器

    环境: 1.虚拟机中安装了CentOS,虚拟机使用NAT的方式 2.在CentOS中安装了APACHE 并且使用 http://127.0.0.1可以正常访问,通过ifconfig查到IP地址是 19 ...

  4. 虚拟机 主机无法访问虚拟机中Linux上的tomcat服务

    在wmware中安装linux后安装好数据库,JDK及tomcat后启动服务,虚拟机中可以访问,但是主机却无法访问,但是同时主机和虚拟机之间可以ping的通,网上查阅资料后,解决方法是关闭虚拟机中的防 ...

  5. SSH实现在WIN7系统下访问虚拟机中的Linux系统

    使用的是centos6.4进行练习的,安装的是vmware8虚拟机.以下是总结的一些步骤: 一.确保vmware使用NAT的连接方式,如做地址.端口映射 首先查看vmware的中网络连接的一些方式:E ...

  6. 通过ssh访问虚拟机中的ubuntu系统

    首先把 network 连接方式由 NAT 改为 Bridge Adapter,这样虚拟机中的 ubuntu 就可以有独立的 IP 地址. 安装 openssh: sudo apt-get insta ...

  7. 主机无法访问虚拟机中运行的Django项目

    在虚拟机中的linux上运行了Django项目,虚拟机中可以访问,但外部主机无法访问(连接超时),但主机能ping同虚拟机,虚拟机也能ping通主机 需检查三个地方:(后面发现虚拟机的ip地址存在改变 ...

  8. 如何在Windows中使用Eclipse访问虚拟机Linux系统中的hadoop(伪分布式)

    因为计算机配置过低,在虚拟机里几乎无法使用Eclipse,效率极低! 所以现在尝试使用Windows下Eclipse操作虚拟机中Hadoop,步骤如下: 开发环境:Hadoop2.7.1,Ubuntu ...

  9. 041. asp.net中内容页访问母版页中的控件

    母版页运行机制: 用户通过输入内容也的URL来请求某个页面, 获取该页面后, 读取@Page指令, 如果该指令引用了一个母版页, 则也读取该母版页, 如果也是第一次请求这两个页面, 则母版页和被请求的 ...

随机推荐

  1. 转:【Java集合源码剖析】LinkedList源码剖析

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/35787253   您好,我正在参加CSDN博文大赛,如果您喜欢我的文章,希望您能帮我投一票 ...

  2. 201521123005《Java程序设计》第十三周学习总结

    1. 本周学习总结 1.网络基本概念 2.网络常用命令 ipconfig 查看网络配置信息,如ip地址 ping 测试网络是否连通 telnet 远程登录 ftp 登陆ftp Fport (xp下)查 ...

  3. 201521123064 《Java程序设计》第14周学习总结

    本次作业参考文件 数据库PPT MySql操作视频与数据库相关jar文件请参考QQ群文件. 1. 本章学习总结 1.1 以你喜欢的方式(思维导图.OneNote或其他)归纳总结数据库相关内容. 1.数 ...

  4. 201521123049 《JAVA程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  5. 让SAE下的wordpress支持文件上传

    非PHP程序员照着源码打的小布丁… SAE是不允许本地磁盘读写的,所以使用wordpress撰写文章的时候, 上传控件默认是用不了的,幸好SAE提供了storage服务来存储文件,那就可以修改word ...

  6. python 中的%s是什么意思呢?

    今天忽然想写Python中的%s的意思,它怎么理解呢,我查阅了一下相关文献,然后结合了自己的理解,分析如下: 这是一个字符串格式化语法(这是从c 中调用的) 具体请参阅     http://www. ...

  7. PowerDesigner连接MySQL和逆向工程图

    0.写在前面的话 最近想梳理公司项目的表间关系,从项目后台管理系统的操作入手,以及代码的hibernate注解入手,都不算特别尽人意,于是最后还是鼓捣了一下PowerDesigner的逆向工程图,这样 ...

  8. python实例编写(2)--等待,一组对象,层级元素,frame对象处理

    一.设置等待 #coding=utf-8 from selenium import webdriver from selenium.webdriver.support.ui import WebDri ...

  9. Spring配置属性文件

    在项目开发阶段和交付阶段数据库的连接信息往往是不同的,可以把这些信息写成属性文件,再在Spring中导入即可引用 jdbc.properties属性文件如下: jdbc.driverClassName ...

  10. web自动化1-selenium简介及环境搭建

    selenium 开源软件 支持多浏览器Firefox.Chrome.IE 跨平台Windows.Mac.Linux 多语言 java python Ruby php js 对web支持好,多种API ...