본문 바로가기
개발관련/HOSTING\DEPLOY

Cafe24 Tomcat JSP 호스팅 상품의 MariaDB 이용 시 주의사항

by joa-yo 2023. 1. 14.
반응형

Cafe24에서 제공된 MariaDB 10.0.x와 제가 사용하는 MariaDB 버전이 다르기도 했고, 여러가지 설정들이 달라서 고군분투 했던 내용을 정리해보았습니다.

 

상품명 : Tomcat JSP 호스팅 일반형

 

 

1. 새로운 사용자 생성 불가 / 권한 수정 불가

데이터 베이스가 설치된 채로 제공되며, 사용할 계정 및 스키마도 지정되어 나옵니다. cafe24 사용자가 계정관련하여 설정할 수 있는 것은 접속 패스워드라고 생각하시면 됩니다.

 

2. 프로시저/함수 사용 가능

일부 상품에서는 사용이 불가능한데, Tomcat JSP 상품에서는 사용가능합니다. 하지만, 테스트용 디비에서 붙여넣을 때, 주의사항이 필요합니다.

/* 톄스트 DB에서 생성시 사용한 쿼리 */

CREATE DEFINER=`[사용자명]`@`[데이터베이스URL]`
FUNCTION `[스키마]`.`[함수명]`(CATEGORY_ID VARCHAR(15), CODE_ID VARCHAR(15))
RETURNS varchar(30) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci
DETERMINISTIC
COMMENT '공통코드명 조회'
BEGIN
DECLARE RESULT VARCHAR(30);
SELECT DESCRIPTION
INTO RESULT
FROM [스키마].COMMON_CODE CC
WHERE CC.CATEGORY_ID = CATEGORY_ID
AND CC.CODE_ID = CODE_ID LIMIT 1;
RETURN RESULT;
END
/* cafe24 데이터베이스에서 사용한 쿼리 */

CREATE FUNCTION `[함수명]`(CATEGORY_ID VARCHAR(15), CODE_ID VARCHAR(15))
RETURNS varchar(30) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci
DETERMINISTIC
COMMENT '공통코드명 조회'
BEGIN
DECLARE RESULT VARCHAR(30);
SELECT DESCRIPTION
INTO RESULT
FROM COMMON_CODE CC
WHERE CC.CATEGORY_ID = CATEGORY_ID
AND CC.CODE_ID = CODE_ID LIMIT 1;
RETURN RESULT;
END

 

SQL을 비교해보면 특정 사용자나, 스키마가 지정된 부분을 제거한 것을 알수 있습니다.  만약 데이터베이스 정보가 일치한다면 상관없겠지만, 저의 경우는 다르게 설정되어 있어서 이부분을 모두 제거해주었습니다.

 

 

 

3. window Function 사용 불가

cafe24에서 제공된 mariaDB 버전

 

window Function 사용가능한 maria db 버전

 

ROW_NUMBER()은 window Function입니다. 오라클에서는 예전부터 지원해준 것으로 알고 있으나, MariaDB에서는 10.2버전부터 지원해주기 때문에, 이 상품에서는 사용할 수 없습니다.

 

따라서 아래와 같은 SQL을 사용해야합니다.

SELECT 
    MyData.*, 
    @row_num:= @row_num + 1 AS Therow
FROM 
    MyData, 
    (SELECT @row_num:= 0 AS num) AS c
WHERE Date_Reading > Now()- INTERVAL 3 HOUR
ORDER BY test.`date` ASC;

 

반응형

댓글