很抱歉出现了这个问题,但我对Oracle SQL软件并不熟悉。
我一直试图创建一个连接到我的数据库学生(创建在server上),但是由于我使用的是一台连接到服务器的客户端计算机,所以非常混乱。
下面是关于连接的信息:
连接名:LARGER123
用户名:LARGER123
Hostname:uxkg265.admin.plent
端口:1520
SID:ticp5076
客户端-计算机用户名:r5678

当我打开SQL提示符时,为了建立连接,我尝试了用户名上的几个组合,但是得到了相同的错误或12154错误。
我认为这可能是我设置用户名字段的方式,所以我遵循了Oracle网站的说明:
https://docs.oracle.com/database/121/ADMQS/GUID-1A15D322-B3AC-426A-86A1-EB7590930687.htm#ADMQS045
基本上,它告诉我们以这种方式“构建”用户名结构:
nick@"dbhost.example.com/orcl.example.com"其中:"dbhost.example.com"是用户,"nick"是主机,"orcl.example.com"是数据库。
因此,按照这个示例,我以这种方式输入用户名,并得到了错误:
LARGER123@"uxkg265.admin.plent/student"我尝试了不同的方法,包括端口和SID,但都没有成功。
你知道我犯了什么错吗?
发布于 2018-11-05 23:57:51
你确定有人在听你试图连接的地方吗。我建议你先用telnet进行测试。
你说你的服务器有域名“uxkg265.admin.plent”
nslookup uxkg265.admin.plent我刚查了一下我的IP地址发现:
$ nslookup $(hostname)
Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xx##53
Name: mydomain.myorg.com
Address: 192.168.56.1我只是试图连接到我的oracle实例,结果得到:
$ telnet 192.168.56.1 1521
Trying 192.168.56.1...
Connected to 192.168.56.1
Escape character is '^]'.
^]
telnet> quit
Connection closed.如果我去错了港口,我会得到:
$ telnet 192.168.56.1 1522
Trying 192.168.56.1...
telnet: connect to address 192.168.56.1: Connection refused我能够连接到:
sqlplus myoracle/testpass@192.168.56.1:1521/UPGR其中UPGR是服务名称。
我还能够与以下方面建立联系:
sqlplus myoracle/testpass@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.1)(PORT=1521))(CONNECT_DATA=(SID=UPGR)))"以UPGR作为SID。
一开始我遇到了一些麻烦,因为我的Oracle Linux版本启用了iptables,这使得我无法使用sqlplus进行连接。一旦我禁用了这个保护,我就能够使用Oracle。
sudo service iptables stop
sudo chkconfig iptables off(请记住,iptable是有目的的。对于我的测试系统在我的PC上运行的VirtualBox,关闭它是好的。(对于其他系统,也许不是。)
发布于 2018-11-06 01:05:48
ORA-12154是TNS:could not resolve the connect identifier specified,但是您可能没有使用TNS解析连接标识符:您在客户端机器上编辑了tnsnames.ora文件并为要连接的SID创建了一个条目吗?可能不会。
而不是选择SID,选择“服务名称”并将Oracle SID放在那里。对于“基本”连接类型,应该显式地使用主机/端口和服务名称来构建连接,而不是依赖TNS来查找(解析) SID。
https://stackoverflow.com/questions/53161859
复制相似问题