블로그에 작성한 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를 선택을 하면 아래 창을 뜨면서 설치를 진행할 것인지 묻는다. 설치를 진행한다.
시냅틱 꾸러미 관리자를 사용하고 나면 반드시 종료해야한다. 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 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이 만들어졌는지 확인가능하다.