[MySql / MariaDB] 바이너리 용량 설정하기 1. 바이너리 타입 변경하기 DB의 저장 방식 중 하나인 바이너리는 종류가 여러 개가 있습니다. 그중, 서버와 요즘 사람들이 자주 사용하는 사진의 용량을 예상하여 크기를 정하는 방법입니다. ■ 자주 사용하는 바이너리 용량 이름 용량 TINYBLOB 256Byte BLOB 64KB MEDIUMBLOB 8MB LONGBLOB 4GB 만약 BLOB를 설정하였다면, 사용자들은 64KB 이상의 데이터를 넣을 수 없게 됩니다. 그러므로 바이너리 타입을 변경하여 용량을 바꾸는 방법이 되겠습니다. 2. DataBase의 저장될 용량 크기 변경 1번 방식을 했지만 저장이 안 되었다면, log 혹은 sql error에서 max_allowed_packet Error가 ..
[MariaDB] mysqldump가 실행이 안 되는 경우 mysqldump 명령어가 실행이 안 될 때 보통 백업을 mysqldump를 활용하여 복원한다면 mysqldump를 통해 복원이 되지만, SQL 프로그램(HeidSQL, SQLDeveloper 등)을 활용한다면 Mysqldump를 통해 복원이 안 되는 경우가 발생된다. 이는 sql의 종료 문구인 ';'(쎄미 클론)들이 존재함을 확인해야 한다. 만약 나의 백업된 sql에 저렇게 쎄미 클론들이 존재한다면, 보통 방법으로는 mysqldump를 실행하다가 강제 종료 처리당하고 종료된다. 이를 해결하기 위해서는 잠시 SQL종료 문구를 변경할 필요가 있다. DELIMITER 사용하기 사용 방법은 매우 단순하다. 그냥 MYSQL의 SQL 입력창에 'DELIM..
[MariaDB] 대, 소문자 구분 없애기 MariaDB 설치 시, 주의해야 할 점 MariaDB는 정상 작동된다. 그러나 서버에서 SQL이 제대로 실행되지 않는 경우가 발생된다. Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table [테이블 명] 만약 서버의 log나 catalina에서 위와 같은 오류가 발생되었다면, 이는 TABLE의 대, 소문자의 불명확으로 발생되는 에러이다. 만약 위와 같은 오류가 동일한지를 확인하고 싶다면, 아래의 명령어를 MariaDB에서 실행해 보면 알 수 있다. show variables like 'lower_case_table_names'; Value 값..
MySQL, MariaDB 1093 Error 발생 Error 명 SQL 오류 (1093): Table '테이블 명' is specified twice, both as a target for 'INSERT' and as a separate source for date 원인 INSERT INTO T_USR_AREA (AREA_SEQ, AG_01, AG_02, INST_DATE, UPDT_DATE, UPDT_ADMIN) VALUES ((SELECT IFNULL(MAX(AREA_SEQ)+1, 0) FROM t_usr_area), 'Y', 'Y', CURDATE(), CURDATE(), 'user'); 원인은 INSERT 안의 서브 쿼리를 주입함으로써 INSERT가 서브 쿼리를 인식하지 못하는 경우이다. 이로 ..
; 세미클론은 SQL의 종료를 의미합니다. 그러나 프로시저 같은 경우 실행문 중간중간에 표시되는 세미클론에 의해 SQL 종료로 인식하고 프로시저의 종료처리가 되는 안타까운 일이 발생하게 됩니다. 따라서 프로시저의 추가는 DELIMITER의 도움을 받을 수밖에 없습니다. DELIMITER란? SQL의 종료를 변경하는 명령어. 기본 값은 ; 세미클론으로 되어있으나, $$나 %% 같이 사용하지 않는 단어로 바꿈으로서 프로시저의 갑작스러운 종료처리를 방지할 수 있게 됩니다. 따라서 프로시저를 추가할 때에는 DELIMITER [종료 문구] 로 변형해주시고. 프로시저의 사용이 모두 끝나게 되었을 경우 다시 DELIMITER ; 로 원상복구해주면 됩니다. 만약 안 하시게되면, 나중에 간단한 INSERT, UPDATE..
안녕하세요. 이번 시간에는 DB 백업, 복원하기 시간을 가졌습니다. 어떠한 원인에 의해 DB서버는 언제든지 문제가 생길 수 있으므로 백업은 매우 중요합니다. 가령, 서버를 포맷한다거나 이동으로 장애가 아닌 경우에도 사용할 수 있으므로 매우 중요한 기술입니다. 따라서 TEST를 위한 DB를 아무거나 무작정 사용할 수 없으므로 MariaDB를 사용하여 DB를 직접 만들고 사용하였습니다. 백업에 활용한 방식은 mysqldump 방식입니다. 이 방법은 innoDB 엔진에 한해 백업방식이며, 논리 백업 방식을 사용하면서도 간단하게 실행할 수 있어 무난히 사용할 수 있습니다. 다만, 데이터 수가 많아질수록 속도는 매우 느려지는 치명적인 단점을 지녔습니다. 테스트를 위해 maria db에서 실험을 위한 DB를 생성하..
MYSQL 계정에 대한 작업을 하기 위해서는 반드시 ROOT 계정이 필요하다. 콘솔창에서 MYSQL ROOT 접속해보자. 1. MYSQL -U ROOT -P 입력 2. ROOT 비밀번호 입력 접속하게 될 경우 콘솔창에 이와 같이 입력한다. 계정 생성하기 CREATE USER '계정 아이디'@'접속위치(localhost)' identified by '패스워드'; user 권한 주기 GRANT ALL PRIVILEGES ON *.* TO '계정 아이디'@'접속 위치' WITH GRANT OPTION; 권한 확인하기 SHOW GRANTS FOR '계정 아이디'@'접속 위치'; ex ) SHOW GRANTS FOR 'hr'@'localhost'; 권한을 모두 주는 것은 비효율적이지만, 연습용 계정을 만들고 사용..
JAVA를 통해서 입력받은 값을 통해 TABLE을 자유롭게 생성해야 하는 이유가 생겼다. 그래서 CREATE TABLE을 통해 만들 방법을 찾다가 2가지 경우가 되는 것을 확인되었다. 첫 번째 방법은 프로시저를 통해서 테이블을 만드는 방법이다. CREATE OR REPLACE PROCEDURE PRO_CRE(v_name varchar2) IS cursor1 INTEGER; credbsql VARCHAR2(100); BEGIN credbsql := 'CREATE TABLE ' || v_name || ' (abc number, bac varchar2(10))'; -- 테이블 생성 cursor1 := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(cursor1, credbsql, dbms_..
★DML (Data Manipulation Language) 데이터 조작 어는 데이터 관점에서 생명주기를 제어하는 것을 의미한다. 대표적으로 INSERT, SELECT, UPDATE, DELETE가 있다. 다른 말로는 CRUD라고도 부른다.(Create Read Update Delete). 조작어 설명 INSERT 데이터를 추가한다 SELECT 데이터를 조회한다 UPDATE 데이터를 수정한다 DELETE 데이터를 삭제한다. INSERT INSERT INTO 테이블명 (속성1, 속성2 …) VALUES(값1, 값2…); 만약 TEST테이블 (CUSTNO, CUSTNAME)에 값을 넣는다면. INSERT INTO TEST (CUSTNO, CUSTNAME) VALUES (100, 'ABC'); 이런 예시로 값..
★ DDL (Data Definetion Language) 데이터의 논리적인 물리적 구조를 정의하는 언어로 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정하는 목적으로 사용된다. 대표적으로 CREATE, ALTER, DROP가 있다. 명령어 내용 CREATE TABLE 테이블 생성 ALTER TABLE 테이블 수정 DROP TABLE 테이블 삭제 TRUNCNATE 테이블 내용만 삭제 CREATE TABLE CREATE TABLE TEST ( CUSTNO NUMBER, CUSTNAME VARCHAR2(10) ); TEST TABLE이라는 이름으로 CUSTNO, CUSTNAME 칼럼(속성)을 가진 테이블을 생성한다. CREATE TABLE ( 속성명 속성타입 [속성 값] ); 가장 기본적이며,..
DECLARE v_first VARCHAR2(5) :='FIRST'; BEGIN DECLARE v_second VARCHAR2(8) :='SECOND'; BEGIN DBMS_OUTPUT.PUT_LINE(v_first); DBMS_OUTPUT.PUT_LINE(v_second); END; DBMS_OUTPUT.PUT_LINE(v_first); END; / DECLEARE [선언부] 변수나 상수를 선언하는 부분이다. BEGIN [실행부] 제어, 반복문, 함수정의 등 기술 가능 부분 END; 선언하고 실행을 하였다. 결과는 이렇게 나온다. ※ 만약 PL/SQL 프로시저가 성공적으로 완료되었습니다만 나올 경우엔. SET serveroutput ON SET verify OFF 셋팅을 하면 된다. OUT_PUT선언이..
Oracle Developer 설치하기 1. 오라클 디벨로퍼 설치 사이트 접속합니다. https://www.oracle.com/tools/downloads/sqldev-v192-downloads.html Oracle SQL Developer Downloads This archive. will work on a 32 or 64 bit Windows OS. The bit level of the JDK you install will determine if it runs as a 32 or 64 bit application. This download does not include the required Oracle Java JDK. You will need to install it if it's not alre..