cubrid 설치 및 설정
안녕하세요 기술지원팀 이준우사원 입니다. 이번에는 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 |
– apache와 php를 설치한 환경에서 진행하였습니다.
큐브리드 다운로드 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으로 설치 후 확인해줍니다.
glibc는 GNU cc에서 사용하던 C library입니다, 즉리눅스 환경에서 C에서 기본 제공하는 함수입니다. ncurses는 텍스트모드에서 Panel, Menu, Mouse, Color등을 쉽게 사용할 수 있도록 도와주는 라이브러리입니다. |
– 모듈 간단한 해석입니다.
# 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/hosts에 IP와 같이 추가해 맞춰줍니다. 변경 후 재접속해야 적용됩니다. 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 버전 호환성 경고가 나옵니다. broker와 DBMS서버의 버전이 일치해야한다고 나옵니다.
첫 설치이므로 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’; |
– 컬럼 목록 확인 명령어 입니다. table에 culumn이름, 사이즈를 이용해 table에 clumn을 출력합니다.
# 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 가동 계정 home에 10.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경로에 php와 cubrid 연동 확인을 위해 phpinfo.php 페이지 생성
접속방법 : http://서버 IP/phpinfo.php
Category: 솔루션/IT기타