Oracle 数据库连接失败问题
生活随笔
收集整理的這篇文章主要介紹了
Oracle 数据库连接失败问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
環境上安裝的是oracle11g,其實oracle的安裝是比較容易的,winA裝server, winB裝client, 最終目的winA能連上winB,并能查詢數據和操作,但是由于我的環境裝了兩個數據庫server, 一個監聽1521, 一個監聽1522,而客戶端只有一個,長久時間沒用,已經不記得當時client連的是哪一個server,一陣亂搞,越弄越瞎,結果用了半天才把環境恢復,不得不把一些弄清楚的概念記一下,以免下次遇到不至于這么手足無措安裝完后需要配置連接,首先從server開始
1 配置監聽服務
這個選項里面可以配置listener文件,也可以自定義監聽端口,其配置生效文件在
C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. #listene_2是新建的測試連接,一般就是默認的listener,1521的那個 LISTENER_2 = #這是我建的新的連接,端口是1531作測試(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = server-ip)(PORT = 1531)) #HOST直接用IP,域名,計算機名都是出錯的地方))ADR_BASE_LISTENER_2 = C:\app\AdministratorSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")))LISTENER = #這個是原始建的listener文件,1521,一般就用這個監聽(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = server-ip)(PORT = 1521))))ADR_BASE_LISTENER = C:\app\Administrator 從這個配置文件可以看出oracle是把所有的listen配置統一寫在一個文件中,開啟服務時,一起開啟的 服務器只需要listener.ora文件即可,切記修改完后,一定要把監聽服務重啟 ----------------------------------------------------------------------------------- C:\Documents and Settings\Administrator>lsnrctl stop ----------------------------------------------------------------------------------- C:\Documents and Settings\Administrator>lsnrctl start ---------------------------------------------------------------------------------- 也可以在"我的電腦->右擊manage->調出service
驗證: C:\Documents and Settings\Administrator>netstat -anoActive ConnectionsProto Local Address Foreign Address State PIDTCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1060TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 1512TCP 0.0.0.0:1531 0.0.0.0:0 LISTENING 3472TCP 0.0.0.0:2596 0.0.0.0:0 LISTENING 2848TCP 0.0.0.0:2661 0.0.0.0:0 LISTENING 3420TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1916TCP 10.8.116.232:139 0.0.0.0:0 LISTENING 4TCP 10.8.116.232:1521 0.0.0.0:0 LISTENING 3588TCP 10.8.116.232:1522 0.0.0.0:0 LISTENING 1112TCP 10.8.116.232:1522 10.8.116.232:2662 ESTABLISHED 1112TCP 10.8.116.232:1531 10.8.95.177:1141 ESTABLISHED 3472TCP 10.8.116.232:1531 10.8.116.232:2660 ESTABLISHED 3472
如果服務器本機需要自測,則要需要配置tnsname.ora文件或利用oracle提供的net-manager工具,其實這是client的范疇
client安裝好后需要配置net-manager,配置連接哪個數據庫,哪個服務器信息
增加服務名(一般與連接的數據庫一樣,其實隨意,就是一個名字)
填寫服務器的地址以及服務器對這個數據庫開啟的監聽端口,默認1521,也有可能是其它的端口
填寫服務器上想要連的數據庫
設置完測試失敗,因為賬號不對,默認用scott/tiger進行測試
更改成之前在服務器上建數據庫時用的密碼登錄 system/password,測試成功
net-manager做這么多的事,只是為了生成一個tnsname.ora文件
#C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora # tnsnames.ora Network Configuration File: C:\app\Administrator\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora # Generated by Oracle configuration tools. 剛剛的步聚新建了ORCL的連接信息,數據庫orcl, 服務器地址10.8.116.232, 監聽端口1521 ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.116.232)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))) 由于服務器有兩個數據庫,可以直接編寫一個連接服務器dh數據庫的信息放在同一文件中,進行保存,如果服務器只有orcl,則不需要下面的這些信息 DH =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.116.232)(PORT = 1531)))(CONNECT_DATA =(SERVICE_NAME = dh))) --------------------------------------------------------------------------------Microsoft Windows [Version 5.2.3790] (C) Copyright 1985-2003 Microsoft Corp.C:\Documents and Settings\Administrator>sqlplus system/password@dhSQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 18 18:32:13 2015Copyright (c) 1982, 2010, Oracle.? All rights reserved.Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select sysdate from dual;SYSDATE --------- 18-DEC-15SQL> discon Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Pr oduction With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> conn terry/password@orcl Connected. SQL>
SQL基本操作:
client啟動sqlplus C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 18 18:51:33 2015Copyright (c) 1982, 2010, Oracle. All rights reserved. 連接 SQL> conn terry/password@orcl Connected. 用戶和權限 創建用戶 create user 用戶名 identified by 口令 [account lock| unlock]SQL> create user orcl identified by password; #一行寫完User created. SQL> create user jerry #分行寫完2? identified by password3? account unlock;User created. 授權: grant 角色|權限 to 用戶 SQL> grant connect to orcl; #orcl有連接和查看的權利,但沒有寫的權利Grant succeeded.SQL> grant connect to jerry;Grant succeeded.SQL> grant resource to jerry; #jerry有操作數據庫的權利Grant succeeded. 建表 SQL> conn orcl/password@orcl Connected. SQL> select sysdate from dual;SYSDATE --------- 18-DEC-15 SQL> create table scores2? (id number,3? term varchar2(2)); create table scores * ERROR at line 1: ORA-01031: insufficient privilegesSQL> discon Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Pr oduction With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> conn jerry/password@orcl Connected. SQL> create table scores2? (3? id number,4? term varchar2(2)5? );Table created. 更改密碼 alter user 用戶名 identified by 新密碼 更改鎖定狀態 alter user 用戶名 account lock|unlock查詢: select *|列名| from 表名 where 條件 order by 列名SQL> select id from scores;ID ----------187186插入: insert into 表名(列名1, 列名2 ..)values(值1,值2) SQL> insert into scores values2? (187186,'dh');1 row created. 更新: update 表名 set 列名1=值, 列名2=值.....where 條件 SQL> update scores set2? id=911,term='zj';1 row updated.SQL> select * from scores;ID TE ---------- --911 zj刪除: delete from 表名 where 條件SQL> delete from scores;1 row deleted.SQL> select * from scores;no rows selectedSQL> commit; #只有提交了,才真正改了數據庫中的表,否則其它用戶還是見不到的valCommit complete.SQL> conn terry/password@orcl as sysdba #terry查看jerry建的表 Connected. SQL> select * from jerry.info;NAME????????? SCORE -------- ---------- terry??????? 187186
轉載于:https://my.oschina.net/hding/blog/547521
總結
以上是生活随笔為你收集整理的Oracle 数据库连接失败问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发多线程篇—自定义NSOpera
- 下一篇: DButils数据库升级不丢失数据