PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止

配置好plsql后能够正常使用,过了一个月再次登录Oracle数据库的时候报错:ORA-12541: TNS: 无监听程序。
百度发现是由于系统的OracleOraDb11g_home1TNSListener服务没有启动,于是手动启动程序,发现又报错:OracleOraDb11g_home1TNSListener服务启动后停止。
再次百度解决方案,是由于Oracle配置文件的HOST地址出错。这就很奇怪了,明明配置Oracle的时候已经把localhost修改为了本地ip地址参见这篇文章中“监听程序未启动或数据库服务未注册错误处理”),为什么还会出错呢?重新ipconfig了一下才发现,自己的ip地址是动态变化的!这是由于主机采用动态分配的ip避免病毒攻击等问题。
于是顺藤摸瓜,逆着把这一系列问题一一攻破……

文章目录

  • 修改HOST地址为主机名
    • 找到自己的主机名
    • 修改Oracle配置文件
  • 启动OracleOraDb11g_home1TNSListener服务
  • 重启Plsql

修改HOST地址为主机名

知道了自己的ip地址是动态变化的,那么就不要傻傻使用ip地址配置文件了,要不然过几天就要重新配置一次。

找到自己的主机名

打开控制面板,搜索“系统”,点击“查看该计算机的名称”
PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止_第1张图片
找到自己的计算机名(注意,不要随意更改计算机名了,否则还要重新配置)
PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止_第2张图片

修改Oracle配置文件

在自己的Oracle安装目录中找到listener.ora和tnsnames.ora(一般在图中的目录下)
PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止_第3张图片
分别修改HOST后面为自己的主机地址:
PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止_第4张图片
PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止_第5张图片
保存

启动OracleOraDb11g_home1TNSListener服务

windows+R,搜索services.msc,打开服务界面。
右键OracleOraDb11g_home1TNSListener服务,启动。如果其他两个红框中服务没有启动也手动启动。
PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止_第6张图片

重启Plsql

这时候问题应该解决了,但需要重启plsql,否则可能报错“监听服务无法识别描述中请求”。不用理,关掉重启就好了。
PLSql报错12541: TNS: 无监听程序|OracleOraDb11g_home1TNSListener服务启动后停止_第7张图片
成功。

你可能感兴趣的:(数据库,数据库,plsql,oracle,host)