일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스마트컨트렉트테스트
- 체인의정석
- 컨트렉트 배포 자동화
- multicall
- 티스토리챌린지
- 스마트컨트렉트 예약어 함수이름 중복
- git rebase
- 러스트기초
- rust 기초
- 러스트 기초 학습
- 스마트컨트렉트 함수이름 중복 호출
- 컨트렉트 동일한 함수이름 호출
- chainlink 설명
- Vue.js
- erc4337
- 계정추상화
- ethers type
- 러스트 기초
- ethers typescript
- ethers
- erc4337 contract
- 스마트 컨트렉트 함수이름 중복
- Vue
- 머신러닝기초
- ethers websocket
- vue기초
- SBT표준
- ambiguous function description
- ethers v6
- 오블완
- Today
- Total
체인의정석
Mysql, Oracle DBeaver 연결 후 utf8 확인 본문
데이터 베이스를 오랜만에 쓰면서 복습을 해보았다.
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/
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
다음과 같이 도커에서 포트를 설정해 주어야 로컬 환경에서도 해당 포트로 인식해서 데이터베이스 관리 시스템에 접속 할 수 있다고 한다. 하지만 어떠한 이유에서 인지 접속이 안되어서 아래 링크로 변경하여 진행하였다.
포트바인딩을 하는 방법은 2가지가 있다고 한다. 첫번째는 위와 같이 명령어에서 일일히 지정을 해주는 방법 (브릿지 모드)이고 두번째는 기본 값을 모두 로컬과 같은 포트로 연결시켜주는 (호스트 모드)라고 한다.
이때, 브릿지 모드의 경우 장점은 여러 컨테이너가 있을 때 따로따로 각각 로컬의 다른 포트랑 바인딩 시켜서 여러개를 쓸 수 있다는 점이고 호스트 모드는 포트바인딩 없이도 로컬과 연결이 자유로워 설정이 편한 장점이 있다고 한다. 상황에 따라서 맞는 방법을 선택하면 된다고 하는데 일단 일을 해야하니 자세한건 나중에 찾아보기로 했다.
그래서 아래 링크를 보고 도커안에서 명령어를 실행하였다.
https://pakss328.medium.com/docker-oracle-%EA%B8%B0%EB%B3%B8-%EC%85%8B%ED%8C%85-a09bf869cb59
(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");
'개발 > database' 카테고리의 다른 글
Oracle DB 테이블 구조와 DBeaver 연결 (0) | 2021.08.20 |
---|---|
Database Error: DPI-1047: Cannot locate a 64-bit Oracle Client library 오류 해결기 , MAC / Node 환경 (0) | 2021.08.20 |
PostgreSQL와 DBeaver 연결하고 utf-8 체크 (0) | 2021.08.17 |
Mssql DBeaver연결 후 utf-8 적용 테스트 (0) | 2021.08.17 |
Mysql - null값이 섞인 같은 행하나로 합치기 (0) | 2020.08.28 |