2016-03-06 213 views
0

我在Linux Mint 17.3系統上安裝了適用於Linux x64的Oracle數據庫Express Edition 11g第2版。安裝過程很成功。我能夠使用sqlplus連接到數據庫,創建新用戶,執行命令等。 在安裝時配置數據庫時,我使用了默認端口,即8080和1521. 但我無法連接到APEX url ie localhost:8080/apex/f?p = 4950從我的系統。我一直在尋找過去幾個小時的解決方案,並且找不到任何地方。無法連接到Linux中的Oracle 11g XE Apex Web界面Mint

LSNRCTL命令的輸出是如下:

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 06-MAR-2016 10:11:05 

Copyright (c) 1991, 2011, Oracle. All rights reserved. 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))) 
STATUS of the LISTENER 
------------------------ 
Alias      LISTENER 
Version     TNSLSNR for Linux: Version 11.2.0.2.0 - Production 
Start Date    06-MAR-2016 08:58:41 
Uptime     0 days 1 hr. 12 min. 24 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Default Service   XE 
Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora 
Listener Log File   /u01/app/oracle/diag/tnslsnr/iamharish15-HP-15-Notebook-PC/listener/alert/log.xml 
Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=iamharish15-HP-15-Notebook-PC)(PORT=1521))) 
Services Summary... 
Service "PLSExtProc" has 1 instance(s). 
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... 
The command completed successfully 

我沒有修改任何的tnsnames.ora或listener.ora中的。下面列舉一下這些文件讀起來像: 的listener.ora

# listener.ora Network Configuration File: 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) 
     (PROGRAM = extproc) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(PORT = 1521)) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

的tnsnames.ora

# tnsnames.ora Network Configuration File: 

XE = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XE) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

當我使用連接到XE如下啓動SQL命令行和登錄:

SQL> connect username/p[email protected] 
ERROR: 
ORA-12514: TNS:listener does not currently know of service requested in connect 
descriptor 

但通常從終端,如果我連接使用sqlplus username/password我連接成功。 我想我必須得到XEXEXDB服務才能運行,但到目前爲止我還沒有辦法。在這方面的任何幫助將是非常有幫助的。提前致謝。

+0

請看看:http://www.zyxware。com/articles/2008/12/24/oracle-xe-solution-to-can-access-http-127-0-0-1-8080apex-errors –

+0

我不認爲它適用於我的情況。在我的情況下,沒有更改IP,此外,'lsnrctl status'不返回錯誤/失敗消息。但是它沒有'(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 8080))(Presentation = HTTP)(Session = RAW))'我覺得有一些事情需要做這個'XE'服務沒有運行導致apex web界面不可用。但我不知道如何解決這個問題,我不想搞亂一切,只是爲了解決尖端的問題。 – iamharish15

回答

2

經過數小時的「谷歌搜索」和一些「興奮」,我終於可以解決我的問題。這是我做過什麼來解決我的問題:

  1. alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=iamharish15-HP-15-Notebook-PC)(PORT=1521))' scope = both;

步驟#1解決XE和XEXDB服務不顯示的問題,之後,當我跑lsnrctl status都XE和XEXDB服務進行展示我可以使用命令行SQL工具與username/[email protected]命令登錄。但是APEX Web界面仍然不可用。

  1. 然後,我更新了tnsnames.ora和listener.ora文件,使其具有XEXDB條目和具有Presentation = HTTP行的DESCRIPTION條目。

的tnsnames.ora

# tnsnames.ora Network Configuration File: 

XE = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XE) 
    ) 
) 

XEXDB = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 8080)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XEXDB) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

的listener.ora

# listener.ora Network Configuration File: 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) 
     (PROGRAM = extproc) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(PORT = 1521)) 
    ) 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 8080))(Presentation = HTTP)(Session = RAW) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

之後,我使用下面的命令重新裝載它們的值:

/etc/init.d/oracle-xe force-reload 

這解決了這個問題,我可以連接到APEX網頁界面,並創建新的工作區,用戶等。