我刚刚安装了 Oracle 19c 和 SQL Developer。我打开 SQL Developer 并尝试建立一个新连接,但我得到了
“侦听器拒绝连接并出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的 SID (CONNECTION_ID=HYjeJ...==)”。
我正在尝试与
Username: SYS
Role: SYSDBA
Hostname: localhost
SID: xe (this is the default, I know nothing about it)
我尝试使用“ALTER USER SYS IDENTIFIED BY oracle ACCOUNT UNLOCK;”更改 SYS 用户密码 正如这里推荐的那样。我只能使用 SYS 作为 SYSDBA 登录 SQL Plus,并且没有密码。我试图创建一个用户并设置他们的个人资料以允许登录,但这样做会出错。
编辑:
lsnrctl status
LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 08-MAR-2021 19:39:44
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
Start Date 04-MAR-2021 07:42:09
Uptime 4 days 11 hr. 57 min. 52 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File C:\Desktop\Drawer\Tutorials\Oracle\WINDOWS.X64_193000_db_home\network\admin\listener.ora
Listener Log File C:\Desktop\Drawer\Tutorials\Oracle\diag\tnslsnr\AlbuGierke\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=AlbuGierke)(PORT=5500))(Security=(my_wallet_directory=C:\DESKTOP\DRAWER\TUTORIALS\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "0154b89e82cd4245957cd2ed1b57502d" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "52448234712340b69f274bcc790ecfe0" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
编辑二:
将@EdStevens 解决方案更进一步,我通过SELECT * FROM all_users ORDER BY CREATED;
在 SQL Plus 中运行命令来识别可用用户。然后,我使用安装时创建的 PDBADMIN 用户(在 19c 发布时似乎已经创建了几个用户)来完成连接。
现在我们看到您的听众知道什么,我们看到您有一个服务名称为“orclpdb”的可插入数据库。
我们知道它在 127.0.0.1 的 1521 端口(全部默认)上进行 tcp 连接
所以你的 SQL Dev 属性应该是
连接名称 - 任何有助于识别特定数据库的名称
连接类型 - 基本
主机名 - 127.0.0.1
港口 - 1521
服务名称 - orclpdb
我通常不提供用户名和密码作为连接属性的一部分。如果你不提供它,当你尝试连接时会提示你。在使用 SQL Dev 时,我从不连接 AS SYSDBA(因此,从不以 SYS 身份连接)。以用户 SYS 身份连接是进入完全的 DBA-working-without-a-net 模式。为此,我总是使用 sqlplus 在命令行中工作。
XE 是 oracle 的精简版,旨在在桌面环境中轻松使用。它没有许可费用。它对总数据库大小有限制。我从未使用过它,但据我所见,它更多地被只想学习 SQL 的人使用,而不是学习成为 DBA。看来您已经安装了企业版或标准版,它们也可以是免费的 - 如果您从正确的来源下载并遵守限制性许可协议,仅将其用于个人学习。
好吧,你安装了它。当您创建数据库时,您如何回应要求的各种输入?(顺便说一句,安装软件和创建数据库是两个不同的操作,尽管安装会询问您是要创建数据库还是执行“仅软件安装”。如果您回答“创建数据库”,它将安装软件然后直接去数据库创建助手(又名 DBCA)。但是 DBCA 仍然是一个单独的操作,可以在安装之后和之后的任何时间调用。
看看你有什么:
你真的,真的需要花一些时间阅读数据库概念手册。