블로그에 작성한 1.5.0.4-beta서버 설치 방법과 비슷하다.


XE 1.5.0 beta 버전의 UI는 아직 익숙치 않고, 어디에 무엇이 있는지 전혀 모르겠음.. 다시 UI를 1.4대로 바꾸는 게 나을 것 같아..

1.4.5.10으로 설치하는 것으로 하고, cubrid 연동하는 것에 대한 설치 문서이다.




ubuntu 에서 가장 먼저  큐브리드 8.4을 설치해야 하고, test 라는 DB를 만든다.
(큐브리드는 버전에 영향을 받으니. 늘 버젼을 기억해야 한다. 하위 호환성을 절대 생각하면 안됨.)

 

$  sudo add-apt-repository ppa:cubrid/cubrid-8.4.0

$  sudo apt-get update

$ sudo apt-get install cubrid


http://www.cubrid.com/zbxe/152840 에 보면. 그 다음 synaptic package manager를 실행하고 재설치하라고 해서.. 재설치해 본다.

 


cubrid를 검색한다.

 

 

다시 설치 표시를 하고 난다 . 또는 설치를 선택한다.


php5-cubrid를 설치하지 말자, 꼬일 수 있다.


툴 바에 있는 Apply를 선택을 하면 아래 창을 뜨면서  설치를 진행할 것인지 묻는다. 설치를 진행한다.

image007.png 


시냅틱 꾸러미 관리자를 사용하고 나면 반드시 종료해야한다. apt-get을 하려다가 시냅틱 꾸러미 관리자가 사용한 lock때문에 진행이 안될 수 있다.


$ vi /home/kimyonghwan/.bashrc

   .   /etc/profile.d/cubrid.sh  추가



$  source /home/kimyonghwan/.bashrc

$ cubrid createdb test
    512.0M 크기의 데이터베이스 생성 중.

     CUBRID 2008 R4.0

 
$ cubrid service start
@ cubrid master start
++ cubrid master (이)가 수행되고 있습니다.
@ cubrid broker start
++ cubrid broker (이)가 수행되고 있습니다.
@ cubrid manager server start
cubrid manager server is not installed.






데몬이 정상적인지 확인 한다. 잘 되고 있다.

 


   /opt/cubrid/bin 디렉토리에서 db를 생성한다.

$ cubrid createdb test




$ cubrid server start test
@ cubrid server start: test

This may take a long time depending on the amount of recovery works to do.

CUBRID 2008 R4.0

++ cubrid server start: success


$ cubrid server status
@ cubrid server status
 Server test (rel 8.4, pid 5606)


$ ps -ef | grep 5606
1000      5606     1  0 10:48 ?        00:00:00 cub_server test
1000      5829  1874  0 10:49 pts/0    00:00:00 grep --color=auto 5606



 

그 다음은 XE에서 cubrid를 쓸 수 있도록 php-cubrid integration library(so)가 필요하다.  (내용을 읽다보면, 이 방법이 안통할 수 있다. 따라서, apt-get 방식을 사용해야 한다. 아래 내용을 다볼 것!!!)

http://www.cubrid.org/php_api_for_cubrid 에 접속


이 중에서 CUBRID 8.4.0, PHP 5.3.x를 선택하고, CUBRID-PHP5-5.3-LINUX-X86-8.4.0.0003.bin.zip을 클릭

그러면, 다음 주소로 연결된다.

http://sourceforge.net/projects/cubridinterface/files/PHP/PHP%20Driver/CUBRID%208.4.0/Linux/CUBRID-PHP5-5.3-LINUX-X86-8.4.0.0003.bin.zip/download


zip 파일을 /var/www/에 설치후, php5 lib 폴더로 이동한다. php가 로딩하면서 so 파일을 읽어서 작동되게 하기 위함이다.

$ sudo mv /var/www/cubrid.so /usr/lib/php5/20090626+lfs/


 

그리고, php.ini 파일을 수정하고 아파치 서버를 재시작한다.

$ vi /etc/php5/apache2/php.ini

[CUBRID]
extension=cubrid.so



$ sudo service apache2 restart





그러나 에러로그 보니. cubrid 라이브러리 로딩 실패..

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/cubrid.so' - /usr/lib/php5/20090626+lfs/cubrid.so: undefined symbol: executor_globals_id in Unknown on line 0

음. 이거 머냐.. so 파일에 심볼하나가 없다..ㅡ.ㅡ;;





그냥 cubrid 공식 페이지에 있는 apt-get을 이용해서 ubuntu php-cubrid 설치 방법 선택한다.


 

$ sudo rm /usr/lib/php5/20090626+lfs/cubrid.so

$ sudo apt-get install php5-dev
$ sudo apt-get install php-pear
$ sudo pecl install cubrid
$ sudo pecl install cubrid-8.4.0.0003

설치 위치를 물어볼 때. /opt/cubrid 로 선택



다음과 같은 내용이 나오고, cubrid.so파일을 잘 저장했다고 나온다.
 

Build process completed successfully
Installing '/usr/lib/php5/20090626+lfs/cubrid.so'
install ok: channel://pecl.php.net/CUBRID-8.4.0.0003
configuration option "php_ini" is not set to php.ini location
You should add "extension=cubrid.so" to php.ini


다시 한번 확인하고, 아파치 재실행

$ cat /etc/php5/apache2/php.ini

[CUBRID]
extension=cubrid.so


$ sudo service apache2 restart






아파치 에러 로그에 deprecated는 되지만.. 큰 문제는 없다. 그대로 진행

[

Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBCubrid.class.php on line 682, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBCubrid.class.php on line 735, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBFirebird.class.php on line 710, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMssql.class.php on line 552, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMssql.class.php on line 596, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMysql.class.php on line 460, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBMysql.class.php on line 487, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBPostgresql.class.php on line 587, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBPostgresql.class.php on line 621, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite2.class.php on line 436, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite2.class.php on line 467, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite3_pdo.class.php on line 465, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] PHP Deprecated:  Call-time pass-by-reference has been deprecated in /var/www/xe/classes/db/DBSqlite3_pdo.class.php on line 502, referer: http://localhost/xe/index.php?act=dispInstallCheckEnv
[Thu Oct 13 11:44:32 2011] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

 
phpinfo로 cubrid가 제대로 설치되었는지 확인한다.


이렇게만 따라오면, xe 설치에서 DB를 cubrid로 선택할 수 있다.


터미널에서 cubrid 의 db와 계정을 만들어야 한다.

cubrid 서버를 실행할때 함께 띄우는 db를 지정하고, cubrid 서버를 재시작한다.

$ vi /opt/cubrid/conf/cubrid.conf

# server=foo,bar

이렇게 되어 있는 설정을 아래와 같이 수정 (아까 위에서 test라는 db를 만들었었다.)

server=test

 

$ sudo cubrid server restart


kimyonghwan@kimyonghwan-desktop:~$ csql test

 CUBRID SQL 수행기


도움말 메시지를 보려면 ';help' 명령어를 입력하세요.

csql>




csql 이라는 명령어를 이용해서 test 라는 db에 잘 접근했다.


xe 설치화면에서 cubrid DB 설정에서 admin 계정으로 접근하면 그냥 더이상의 진전이 안된다.


그래서, 오류 메시지가 잘 나오는 큐브리드 쿼리 브라우져를 이용하였다. 윈도우에 설치하고, ubuntu에 설치된 cubrid db에 접근해보았다.





xe 설정에서 admin계정으로 접근하니. 165 에러 발생


검색해보니. 계정에러이다.

4, Error Code:-165
"User "aaa(user name)" is invalid
- 원인 및 확인 사항:
1) aaa(user name) user가 없는 경우

   

윈도우에 큐브리드 DB 를 설치할 때는 admin /admin 으로 접속 가능했지만, 리눅스는 따로 계정을 만들어야 한다.


$ csql -C -u dba test

 CUBRID SQL 수행기


도움말 메시지를 보려면 ';help' 명령어를 입력하세요.

csql> create user root password 'root';

csql> commit

csql> select * from db_user;

 
만들어진 root 계정으로 접속하면, 잘 접근이 된다.

$csql -C -u root test


 

사용자 등록을 마치고 나서 XE DB  &관리자 정보 입력 에 정보만 잘 지정하면 된다.



db : test
사용자 이름 : root
비밀번호 : root
ip : 192.168.56.102
port : 30000

이렇게 입력하고 등록 버튼을 누른다.



 

 







큐브리드 쿼리 브라우저를 통해서 보면.. 아래와 같이 잘 table이 만들어졌는지 확인가능하다.

Posted by 김용환 '김용환'
TAG , , ,