체인의정석

Mysql, Oracle DBeaver 연결 후 utf8 확인 본문

개발/database

Mysql, Oracle DBeaver 연결 후 utf8 확인

체인의정석 2021. 8. 17. 09:55
728x90
반응형

데이터 베이스를 오랜만에 쓰면서 복습을 해보았다.

 

1. MYSQL 쿼리

 

데이터 베이스 삭제

mysql -u root -p

DROP DATABASE 데이터베이스이름

 

데이터 베이스 생성 후 접속

create database 데이터베이스이름
use database 데이터베이스이름

테이블 생성

create table 테이블이름 ( '칼럼이름' , '자료형', '옵션' , '필수여부', 'comment')

데이터 insert 

insert into 데이블이름 (칼럼1, 칼럼2) values (칼럽1 값, 칼럼2 값);

 

2. Oracle 쿼리

 

데이터베이스 생성

create Databse 데이터베이스명

데이터베이스 조회

오라클은 데이터베이스가 없지만 schemas와 users라는 것을 가지고 있다고 한다. 또한 이것은 본질적으로 같은 것인데, 오라클에 있는 schema/user는 database로 여겨질 수도 있다. 

https://www.shellhacks.com/oracle-show-databases-sqlplus/

 

Oracle: Show Databases - SQL*Plus - ShellHacks

Show Oracle "databases" (schemas/users) from the command-line using SQL*Plus. Get the current schema name. Switch to different schemas.

www.shellhacks.com

SQL> select user as schema_name from dual;

SCHEMA_NAME
--------------------------------------------------------------------------------
SYS

외부에서 접속하려는 동안 에러가 나서 주위 분들에게 물어보다

포트 바인딩에 대한 설명을 들었다.

docker run -d -it -p 5500:5500 -p 1521:1521 --name oracle store/oracle/database-enterprise:12.2.0.1

다음과 같이 도커에서 포트를 설정해 주어야 로컬 환경에서도 해당 포트로 인식해서 데이터베이스 관리 시스템에 접속 할 수 있다고 한다. 하지만 어떠한 이유에서 인지 접속이 안되어서 아래 링크로 변경하여 진행하였다.

https://romeoh.tistory.com/entry/Oracle-docker%EC%97%90-Oracle-11g-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

[Oracle] docker에 Oracle 11g 설치하기

Spring Boot / Oracle / Mybatis 차례 Docker를 설치했으면 이제 Oracle xe 11g를 설치하겠습니다. docker 로그인 $ docker login docker에 로그인합니다. oracle 11g 다운로드 $ docker search oracle-xe-11g $..

romeoh.tistory.com

 

포트바인딩을 하는 방법은 2가지가 있다고 한다. 첫번째는 위와 같이 명령어에서 일일히 지정을 해주는 방법 (브릿지 모드)이고 두번째는 기본 값을 모두 로컬과 같은 포트로 연결시켜주는 (호스트 모드)라고 한다.

 

이때, 브릿지 모드의 경우 장점은 여러 컨테이너가 있을 때 따로따로 각각 로컬의 다른 포트랑 바인딩 시켜서 여러개를 쓸 수 있다는 점이고 호스트 모드는 포트바인딩 없이도 로컬과 연결이 자유로워 설정이 편한 장점이 있다고 한다. 상황에 따라서 맞는 방법을 선택하면 된다고 하는데 일단 일을 해야하니 자세한건 나중에 찾아보기로 했다.

 

그래서 아래 링크를 보고 도커안에서 명령어를 실행하였다.

https://pakss328.medium.com/docker-oracle-%EA%B8%B0%EB%B3%B8-%EC%85%8B%ED%8C%85-a09bf869cb59

 

docker oracle 기본 셋팅

docker를 이용하여 로컬에 오라클 12c 셋팅 하는 방법이다.

pakss328.medium.com

(base) lambda256@ethan ~ %  docker run -d -it -p 5500:5500 -p 1521:1521 --name oracle store/oracle/database-enterprise:12.2.0.1

(base) lambda256@ethan ~ % docker exec -it oracle bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc_db1@ORCLCDB as sysdba"

SQL*Plus: Release 12.2.0.1.0 Production on Fri Aug 13 08:08:59 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>

도커안에서 접속하고 계정생성 & 권한 추가

SQL> alter session set "_ORACLE_SCRIPT"=true;

Session altered.

SQL> create user root identified by 1234;

User created.

SQL>  grant connect, resource, dba to root;

Grant succeeded.

오라클 table 생성 쿼리

create table "테이블이름" ("칼럼1","칼럼2") constraint "제약조건이름" primaryKey "제약조건ID"

insert 쿼리는 mysql과 똑같이 넣어준다.

 

이때 에러가 날 수 있다.

ORA-01031: insufficient privileges


SQL> conn sys as sysdba
Enter password:
Connected.
SQL> grant create any table to root;
grant create any table to root
                          *
ERROR at line 1:
ORA-01917: user or role 'ROOT' does not exist


SQL> grant create any table to sys;

Grant succeeded.

다음과 같이 권한을 올려서 통과시켜준다.

 그후 오라클에서 insert 쿼리 시 다음과 같이 테이블 명과 칼럼에 ""를 넣지 않으면 에러가 난다.

insert into "테이블명" ("칼럼1", "칼럼2");

 

 

728x90
반응형
Comments