SQLD 공부하는 것 때문에 오라클을 설치했다.
대부분 MySQL만 사용했었고, 오라클 사용은 이전에 이미 세팅되어 있는 것 위주로만 사용을 했었다.
그래서 오라클 자체를 설치해서, 사용해보는 건 처음인데!
설치가 꽤나 까다로웠다.
접속이 되질 않아, 정말 몇 시간 동안 오라클만 붙잡고 있었다.
1. 오라클 설치
https://www.oracle.com/kr/database/technologies/xe-downloads.html
오라클 설치는 위 사이트에서 할 수 있었다.
나는 Windows를 사용하고 있기 때문에, 윈도우 버전으로 설치를 했다.
집 파일로 다운로드가 되는데, 압축을 푼 후에!
[setup.exe] 을 클릭하여 설치하면 된다.
특별하게 설정해야하는 것은 따로 없었다.
다만 중간에 비밀번호 설정을 하는 부분이 있는데, 그 부분만 잘 입력한 후에!
기억하고 있으면 될 것 같다.
오라클 접속 에러
그리고 cmd 창을 열어 Oracle이 잘 설치되었는지 확인을 해봤다.
ORA-12154: TNS: 지정된 접속 식별자를 분석할 수 없음
이런 안내가 뜨면서, 접속이 안 되는 것이었다.
검색을 해보니, JDK 설치 후 환경 변수 설정을 해주는 것처럼 오라클도 환경 설정이 필요해 보였다.
2. 시스템 변수 편집
시스템 환경 변수 편집 > 시스템 속성 > 고급 > 환경 변수 > 시스템 변수
ORACLE_HOME
'환경 변수 > 시스템 변수'에서 [새로 만들기] 버튼을 클릭한 후, 내용을 추가한다.
ORACLE_HOME
C:\app\사용자명\product\21c\dbhomeXE
변수 값은 오라클이 설치되어 있는 위치다.
그리고 '시스템 변수'에서 'Path'를 클릭한 후, [편집] 버튼을 클릭한다.
bin 위치를 설정해줘야 한다고 나와있는데!
들어가 보면 위처럼 이미 설정되어 있을 수도 있다.
그렇다면 굳이 추가하지 않아도 된다.
만약 없다면!
%ORACLE_HOME%\bin
이렇게 추가해 주면 될 것 같다.
그리고 원래는 시스템 변수에 추가로 'TNS_ADMIN'을 등록하고!
C:\app\사용자명\product\21c\dbhomeXE\network\admin
위 경로에서 'tnsnames.ora' 파일도 추가했었다.
참고로 TNS_ADMIN은 Oracle 클라이언트나 서버에서 사용하는 환경 변수 중 하나라고 한다.
이렇게까지 다 등록하고 시도해 봤으나?
여전히 접속이 되질 않았다.
3. 또 다른 방법
https://devlimk1.tistory.com/6
여전히 접속되지 않는 문제가 있어서, 구글링을 하다가 위 글을 보게 된다.
일단 ctrl + r > cmd 를 입력해서, cmd 창에 접속을 한다.
1) sqlplus
sqlplus
cmd 창에서 oracle db 접속을 위해 'sqlplus'를 입력한다.
2) 사용자명 입력
sys as sysdba
사용자명만 입력 후 엔터를 친다.
3) 접속 계정 확인
show user;
여기서 위 명령어를 입력하면 접속 계정도 확인할 수 있다.
4) 비밀번호 변경
alter user sys identified by 0000;
그리고 위 명령어를 입력하면!
사용자가 변경되었다고 뜬다.
5) 접속
conn sys/0000 as sysdba;
위 명령어로 접속을 해보면?
잘 된다.
4. 또 다른 문제
근데 이 경우에 또 다른 문제가 있었다.
DBeaver를 이용해서 테이블을 생성 후 실습을 하는데?
컬럼 삭제가 안 되는 것이었다.
ORA-12988: SYS에 의해 소유된 테이블에서 열을 삭제할 수 없습니다
컬럼 추가나 수정은 되고 있었는데, 컬럼 삭제만 되질 않았다.
https://oooooohi.tistory.com/entry/ORA12988-cannot-drop-column-owned-by-sys-%EC%97%90%EB%9F%AC
그 원인은 위 블로그에서 발견할 수 있었다.
`SYS` 계정으로 만든 테이블은 컬럼 추가랑 변경은 되지만, 컬럼 삭제는 불가능하다는 것이었다.
그러니 실습을 할 때는 SYS 계정으로 하면 안 되는 것이었다.
그래서 그냥 사용자 계정을 생성하기로 한다.
5. 계정 생성 및 권한 부여
다시 cmd 창에서 원점으로 돌아간다.
이렇게 접속을 하고, 계정을 생성해 본다.
ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.
쉽지 않은 오라클...
사용자 생성이 안 되는 것이었다. (...)
위 에러는 https://crome.tistory.com/27 이 블로그를 보고 해결했다.
12C 버전에서는 사용자 계정 앞에 c##을 붙여줘야 한다고 한다.
CREATE USER c##guest IDENTIFIED BY 1234;
위처럼 guest라는 사용자명 앞에 c##을 넣은 후에 다시 시도하니?
등록이 되었다.
grant resource,connect to c##guest ;
grant select any table to c##guest ;
권한도 이런 식으로 주면 된다.
6. DBeaver로 ORACLE 접속
디비버에서 사용을 위해서는 이렇게 입력을 하면 된다.
여기서도 username 입력할 때 c##을 넣어줘야 한다.
c## 없이 할 수 있는 방법도 있는 것 같으나, 일단 이렇게 진행을 해버려서 나는 이렇게 적는다.
그리고 Test Connection을 해보면!
잘 연결된 것을 확인할 수 있다.
정말 까다로운 오라클이었다...
MySQL 설치하고, 사용할 때는 뚝딱이었는데..
오라클은 정말 설치하다가, 화가 났다...
뭔가 하나 할 때마다, 계속 브레이크가 걸려서 답답했다.
그래도 다행히 설치를 완료했고, 힘들게 설치한 덕분에 실습도 잘 할 수 있었다.
오라클 설치 끝.
이거 이거...
나중에 혹시라도 다시 설치를 하다가, 브레이크 걸릴 수도 있을 것 같아서!
일단 남겨 놓는다.
'SOMEDAY > NEED' 카테고리의 다른 글
[UBUNTU] LINUX 명령어 (시간, 위치, history 등) (0) | 2024.05.21 |
---|---|
[CMD] Windows Local Tunnel (로컬 터널) (0) | 2024.05.10 |
[ERROR] Could not load requested class : org.hibernate.dialect.MySQL5InnoDBDialect (0) | 2024.05.04 |
[ERROR] MySQL cannot drop column 'age': needed in a foreign key constraint 'fbgws5tlq1ib1io6mqalmjnur8a' (0) | 2024.04.25 |
[UBUNTU] 우분투 sudo apt update , sudo apt upgrade (0) | 2024.04.21 |