日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle 数据库连接失败问题

發布時間:2025/4/5 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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


#注意的地方 1 client連數據庫時格式是 sqlplus username/password@database client端database是必需有的,但是在服務器本地測試則可以不加,當服務器只有唯一數據庫時 2 client由于我默認1521,但我服務器上有兩個數據庫,用的那一個不是1521導致tns adaptor出錯 tnsname.ora的服務器地址,監聽端口,數據庫沒填對 3 監聽服務沒有起來,導致 TNS no listener 4 server更改完listener,沒有把監聽服務重啟,沒生效 5 scott/tiger賬戶被鎖,密碼過期,導致連不上 6 client只需要tnsname.ora文件, server只需要listener.ora文件,概念有混





轉載于:https://my.oschina.net/hding/blog/547521

總結

以上是生活随笔為你收集整理的Oracle 数据库连接失败问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。