cubrid 설치 및 설정

| 2021년 1월 27일 | 0 Comments

안녕하세요 기술지원팀 이준우사원 입니다. 이번에는 cubrid에 대해 작성하였습니다.

큐브리드란 ?

CUBRID는 네이버에서 개발한 오픈소스 DBMS로 객체 관계형 데이터베이스 관리 시스템으로서, 데이터베이스 서버, 브로커, CUBRID 매니저로 구성된다. 모든 기능과 각종 도구를 무료로 제공하며 인터페이스를 수정해도 소스 코드 공개 없이 상업적인 목적으로 사용할 수 있습니다. 또한 독특한 3계층 구조를 사용해 수평 확장이 쉽다는 장점이 있다 . 네이버의 여러 웹 서비스를 비롯해 각종 공공 기관 및 기업체의 웹사이트에서도 큐브리드를 사용하고 있 습니다. CUBRID는 mysql과 다르게 java언어로 구현이 가능하며 Linux와 window에서만 사용할수있습니다. 우리나라에서 전세계 20만이 넘게 사용하는 DBMS를 만들었습니다. 한번 사용해보도록 하겠습니다.

CentOS 6~8 설치

Cubrid 10.1 버전 설치입니다.

리눅스 Cubrid 10.x 버전 이상부터는 php 7.0, OS 64bit, glibc2.3.4 이상에 버전이 필요합니다.

# 설치환경

OS 64bit

Apache 2.4

php 7.2 → 7.3 부터는 cubrid에서 연동이 되지 않습니다.

glibc 2.17

apachephp를 설치한 환경에서 진행하였습니다.

큐브리드 다운로드

http://www.cubrid.com/downloads

cubrid와 다양한 drive를 다운받을수 있습니다.

큐브리메뉴얼

https://www.cubrid.org/manual/ko/10.1/

설치시 참고한 공식 사이트입니다.

# uname -a → OS 버전 및 bit확인

# rpm -q glibc ncurses libgcrypt libstdc++ → 2.3.4 이상인지 확인

glibc는 기본적으로 2.1.x로 설치되어 있습니다. 2.3.4보다 높은버전이니 사용하셔도 무관합니다.

# php -v → 7.x 이상인지 확인

– cubrid 설치 전 검점 및 필수모듈 확인 입니다.

# yum -y install glibc ncurses* libgcrypt libstdc++

# rpm -q glibc ncurses libgcrypt libstdc++

없다면 yum으로 설치 후 확인해줍니다.

glibcGNU cc에서 사용하던 C library입니다, 리눅스 환경에서 C에서 기본 제공하는 함수입니다.

ncurses텍스트모드에서 Panel, Menu, Mouse, Color등을 쉽게 사용할 수 있도록 도와주는 라이브러리입니다.
Libgcrypt
모든 기본 암호화 빌딩 블록에 대한 기능을 제공하는 암호화 라이브러리 입니다.
libstdc++
C++언어를 읽고 표현할수 있게 해주는 c++라이브러리 입니다.

모듈 간단한 해석입니다.

# groupadd dba

# useradd -g dba -G dba cubrid

# passwd cubrid

cubrid 보안을 위해 DBMS 가동용 그룹과 계정 만들기

# wget https://ftp.cubrid.org/CUBRID_Engine/10.1/CUBRID-10.1-latest-Linux.x86_64.sh

# mv CUBRID-10.1-latest-Linux.x86_64.sh /home/cubrid

# chown cubrid.dba /home/cubrid/CUBRID-10.1-latest-Linux.x86_64.sh

– cubrid 10.1 다운로드 해준 다음 cubrid home으로 옮긴 후 cubrid 계정에서 실행할수 있는 권한을 줍니다.

# hostname

ex) localhost

hostname 확인 후

# vi /etc/hosts

ex) 49.247.xxx.xxx localhost 추가

wq!(저장 후 나가기)

– hostname/etc/hosts를 맞춰줍니다.

** cubrid는 마스터 프로세스를 기동할때 hostname/etc/hosts를 참조하여 운영이 됩니다. localhost/etc/hostsIP와 같이 추가해 맞춰줍니다. 변경 후 재접속해야 적용됩니다. cubrid의 버그 때문에 localhost로 맞춰줍니다.

# su cubrid

# cd /home/cubrid

# sh /home/cubrid/CUBRID-10.1-latest-Linux.x86_64.sh

큐브리드 계정 로그인 후 설치를 시작합니다.

1. cubrid 설치 약관동의 스페이스바로 넘어가줍니다.

 

2. 3개의 질문이 나오는데 yes를 눌러 설치를 진행 한 후 환경변수를 설정해줍니다.

첫번째 질문 라이센스를 동의하는 질문입니다. Yes

두번째 질문 cubrid에 설치 위치를 묻습니다 cubrid를 가동용계정으로 사용할것이기때문에 yes

세번째 질문 cubrid 버전 호환성 경고가 나옵니다. brokerDBMS서버의 버전이 일치해야한다고 나옵니다.

첫 설치이므로 yes

 

# mv /home/cubrid/CUBRID-10.1.4.7800-ccdd47b-Linux.x86_64 /home/cubrid/cubrid_10.1

# vi /home/cubrid/.cubrid.sh

CUBRID=/home/cubrid/cubrid_10.1로 수정

# vi .bashrc

. .cubrid.sh(추가)

wq!(저장 후 나가기)

# . .bashrc

생성된 cubrid 디렉토리 이름 변경,자동으로 환경변수 실행되게 .bashrc. .cubrid.sh 넣어준 후 저장 후 나가서 .cubrid.sh 내용을 변경해줍니다.

여기서 “ . “ source를 대신해서 사용한 리눅스 명령어입니다. source로 대채하여 써도 무관합니다.

 

# mkdir /home/cubrid/cubrid_10.1/databases/testdb

– cubrid db를 생성하기위해 mkdir명령어를 이용해 디렉터리를 만들어줍니다. // demodb가 존재하지만 DB생성 확인을 위해 testdb 생성해 실행합니다. DB로 실행하는 이유는 DB에서 질의를 수행하려면 질의를 수행할 DB를 구동시켜줘야하기 때문입니다.

# cubrid createdb –db-volume-size=250M testdb ko_KR.utf8

– Database 볼륨 사이즈 언어셋을 정해준 후 생성한 디렉터리를 이용해 db를 생성해줍니다.

# cubrid service start testdb

생성한 데이터베이스로 서비스를 시작

start를 제외한 [ stop | status ] 명령어로 대체하여도 사용가능합니다.

# netstat -ntpl

서비스 데몬이 시작된 점과 port 확인합니다.

 

# su root

# vi /etc/sysconfig/iptables

root로 접속하여 방화벽에 cubrid를 허용하기 위한 cubrid service port를 넣어줍니다.

 

CentOS 6

# service iptables restart

CentOS 7~8

# systemctl restart iptables

변경된 방화벽 적용

# su cubrid

# cd /home/cubrid/

# . .bashrc

# vi /home/cubrid/cubrid_10.1/conf/cubrid.conf

server=testdb 추가

wq!(저장 후 나가기)

다시 cubrid로 접근 한 후 생성한 Database service 자동 시작처리 해줍니다.

 

# csql testdb

CUBRID SQL Interpreter

Type `;help’ for help messages.

csql> ;exit

커맨드라인 접속을이 된 점 확인가능합니다. localhost Error발생시 cubrid service start testdb 재시작

# csql –CS-mode testdb –user=dba

csql> CREATE USER username PASSWORD ‘userpasswd’;

csql> ;exit

– DBA 권한으로 접속하여 계정 및 비밀번호를 생성할 수 있습니다.

# csql -u username -p userpasswd testdb

csql> CREATE TABLE test(t1 VARCHAR(10));

Execute OK. (0.013104 sec) Committed.

1 command(s) successfully processed.

csql> show tables;

생성한 User로 접속 확인 및 테이블을 생성한 후 생성한 tables을 확인해봅니다.

csql> SELECT class_name as “table_name”, attr_name as “column_name”, prec “column_size”, data_type, is_nullable as “nullable”, default_value FROM DB_ATTRIBUTE WHERE class_name = ‘table_name’;

컬럼 목록 확인 명령어 입니다. tableculumn이름, 사이즈를 이용해 tableclumn을 출력합니다.

# su root

# cd /home/cubrid

# wget https://ftp.cubrid.org/CUBRID_Drivers/PHP_Driver/10.1.0/Linux/CUBRID-PHP-10.1.0.0003.src.tar.gz

# tar zxvf CUBRID-PHP-10.1.0.0003.src.tar.gz

# cd /home/cubrid/cubrid-php

이제 php와 연동을 위해 cubrid 가동 계정 home10.1 Cubrid-php Driver를 설치 후 압축을 풀고 압축푼 디렉터리로 들어가 줍니다.

# /usr/local/php/bin/phpize

# ./configure –with-cubrid=/home/cubrid/cubrid_10.1 –with-php-config=/usr/local/php/bin/php-config

# ./configure –with-cubrid=cubrid설치 디렉토리 –with-php-config=php-config 위치로 지정

# make

– phpize를 이용해 모듈을 추가해줍니다.

 

phpize 적용 된 점 확인 후 진행합니다.

# ll /home/cubrid/cubrid_10.1/cubrid-php/modules

cubrid.so

# cp -arp /home/cubrid/cubrid-php/modules/cubrid.so /usr/local/php/lib/php/extension/no-debug-zts-xxx/cubrid.so

– cubrid.so 생성을 확인 후 ../php/extension/no-debug-zts-xxx/ 디렉터리로 복사해줍니다.

 

# vi /usr/local/apache/conf/php.ini

extension_dir=”/usr/local/php/lib/php/extension/no-debug-zts-xxx”

extension=cubrid.so

wq!(저장 후 나가기)

# /usr/local/apache/bin/apachectl restart

– php.ini 파일에 cubrid 모듈 추가를위한 내용을 추가 후 php 모듈추가 적용을 위해 apache를 재 시작 해줍니다.

# vi /usr/local/apache/htdocs/phpinfo.php

<? php

phpinfo

?>

wq!(저장 후 나가기)

phpinfo 페이지 만들어 줍니다.

apache home source경로에 phpcubrid 연동 확인을 위해 phpinfo.php 페이지 생성

접속방법 : http://서버 IP/phpinfo.php

 

 

Category: 솔루션/IT기타

Avatar

About the Author ()