我是在cmd sqlplus时提示的协议适配器错误,但用plsql登录是可以连接上的。

查阅了很多博主的文章,按我自己解决问题的思路整理了一下:

1.首先看本地服务有没有打开:

Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统性能。(非必须启动)

OracleJobSchedulerORCL:Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动)

OracleMTSRecoveryService:服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)

OracleOraDb11g_home1ClrAgent:Oracle数据库.NET扩展服务的一部分。 (非必须启动)

OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)

OracleOraDb11g_home1TNSListener:监听器服务,服务只有在数据库需要远程访问的时候才需要。(必须启动)

OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动) 

2.如果服务都启动了还是不行,看看注册表对不对,“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1”,有时候创建多个账号这个数值名称可能没改过来。

 3.如果还不行,在cmd里面 tnsping orcl,看能不能解析名称,不能解析就改一下客户端的“...\product\11.2.0\client_1\network\admin”下tnsnames文件:

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))


ORCL=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

改好就可以

运行sqlplus/as sysdba

 sqlplus myusername/mypassword@Host/ORCL 

 然后就可以执行sql命令了。

遇到 account is locked 的情况:

oracle sys密码的重置方法:

在系统运行中输入:sqlplus /nolog

在命令窗口分别执行:conn /as sysdba

alter user scott identified by tiger;alter user scott account unlock;

这样就把“scott”用户密码修改为“tiger”了,用户可根据自己需求,重置密码。

默认密码:

(1)用户名:scott

密码:tiger

(2)用户名:sys

密码:change_on_install

(3)用户名:system

密码:manager

(4)用户名:sysman

密码:oem_temp

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐