MySQL 설치 > 개발자팁

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

MySQL 설치 정보

MySQL MySQL 설치

본문

MySQL


더욱 상세한 정보는 http://tunelinux.pe.kr/mysql/manual을 참고하세요.
--------------------------------------------------------------------------------

1. MySQL의 개요

2. MySQL의 설치

3. MySQL의 사용법

4. C API

5. Perl DBI

5. PHP3와 MySQL을 이용한 Web과 DB의 연동


--------------------------------------------------------------------------------

1. MySQL의 개요
1.1 특징
커널 thread를 이용한 multi thread를 지원하므로, 다중 CPU가 지원되는 경우 CPU 활용도가 좋음
다양한 플랫폼(HW+OS)을 지원(Window NT 버전도 있음)
다규모 데이터베이스를 지원
에러 메시지를 다국적 언어로 지원
최적화 라이브러리를 사용
빠른 속도 : http://www.tcx.se/benchmark.html
1.2 지원되지 않는 SQL 기능
Sub-select
- "SELECT * FROM table WHERE id IN(SELECT id FROM table2);"와 같은 SQL을 지원하지 않는다.
- "INSERT..SELECT..."와 "REPLACE..SELECT..."형태의 SQL은 지원한다.
- 향후 지원 예정
SELECT INTO TABLE
- "SELECT... INTO OUTFILE" 은 지원
Transaction
- Transaction은 시스템 자원을 많이 소모하므로 전체 속도를 떨어뜨림
- MySQL은 이러한 문제를 해결하기위하여 Transaction을 구현하지 않고 LOCK TABLES/UNLOCK TABLES를 이용하여 transaction과 같은 일을 할수 있도록 구현
Stored Procedure와 Trigger
- Stored Procedure는 향후 지원 예정
- Trigger는 시스템 속도를 떨어뜨리므로 지원할 계획이 없음
Foreign Key
View

--------------------------------------------------------------------------------

2. MySQL의 설치
MySQL은 라이센스 방식이므로 RedHat과 같은 배포판에는 포함되어 있지 않음
비상업용인 경우 무료
상업용인 경우는 라이센스를 구입하여야 함
Win95/98/NT인 경우는 무조건 라이센스를 구입하여야 함
다운로드 사이트 : http://www.tcx.se/download.html , http://linux.kornet.re.kr/mysql/download.html
99년 최신판 : 3.22.22-1
2.1 소스 코드로 설치하기
압축 해제 % gzip -d mysql-Version.tar.gz
% tar xvf msql-Version.tar
% cd mysql-Version

설치 % configure => 각 시스템 환경에 적합한 Makefile을 생성
% make => 컴파일
% make check => 컴파일 결과를 검사
% make install => 실행 파일을 적당한 디렉토리에 설치
% cd scripts
% mysgl_install_db => MySQL의 권한에 대한 테이블을 생성

업그래이드 % mysql_fix_private_tables

설치 디렉토리
- 디폴트 디렉토리 : /usr/local/
- 설치디렉토리 지정 방법 % configure --prefix=설치디렉토리명

- 설치 후 디렉토리 구조

bin/ : 실행 파일
include/mysql : 헤드 파일
lib/mysql : 라이브러리
libexec : MySQL 데몬인 mysqld
var : 실제 데이타

2.2 바이너리 배포판으로 설치하기
압축 해제 % gzip -d mysql-Version-OS.tar.gz
% tar xvf msql-Version-OS.tar
% ln -s mysql-Version-Os mysql
% cd mysql

설치 % mysgl_install_db => MySQL의 권한에 대한 테이블을 생성

2.3 rpm으로 설치하기
설치 % rpm -i MySQL-Version.src.rpm
% cd /usr/src/readhat/SOURCE
% configure => 각 시스템 환경에 적합한 Makefile을 생성
% make => 컴파일
% make check => 컴파일 결과를 검사
% make install => 실행 파일을 적당한 디렉토리에 설치
% cd scripts
% mysgl_install_db => MySQL의 권한에 대한 테이블을 생성

바이너리 rpm 파일 설치시 필요한 파일 MySQL-Version.i386.rpm
MySQL-cilent-Version.i386.rpm
MySQL-bench-Version.i386.rpm
MySQL-devel-Version.i386.rpm

실제 데이터가 저장되는 디렉토리 : /var/lib/mysql
부팅시 자동으로 데몬을 실행하는 파일을 생성


--------------------------------------------------------------------------------

3. MySQL의 사용 방법
3.1 중요 실행 파일과 데몬
중요 실행 파일
mysql SQL 쉘
client 프로그램
mySQL 에 접속하여 쿼리를 수행하는 프로그램
 
mysqladmin MySQL을 관리하는 프로그램
데이터베이스의 생성, 삭제, 권한 설정 테이블을 읽어들이는 일을 수행
 
mysqld MySQL 데몬
 
mysqlshow MySQL 안에 있는 데이터베이스와 테이블과 컬럼을 표시해주는 프로그램
 
safe_mysqld MySQL을 안전하게 실행시키는 스크립트 프로그램 파일
 
isamchk 테이블에 문제가 발생할 경우 수정하고, 테이블을 최적화 하는 프로그램
 

데몬을 수행 시키는 방법
% safe_mysqld 데몬을 안전하게 수행
% mysqld 데몬을 수행, 디폴트 포드 : 3306
% mysqld -P 333 포트 번호를 지정하여 데몬을 수행

부팅시 데몬을 자동수행시키는 방법
- /etc/rc.d/rc.local 파일에 등록
- rpm으로 설치한 경우 자동 등록
3.2 권한 설정
MySQL을 처음 설치하면 root 만이 MYSQL을 사용가능하도록 권한이 설정됨
현재 상태에서 설정된 데이타베이스를 확인 :mysqlshow 명령 사용 % mysqlshow -u root+-----------+| Databases |+-----------+| mysql    || test      |+-----------+
 

- " -u root " : root 가 사용한다는 옵션
- 최초 설치시 : mtsql과 test 두개의 데이블이 존재

mysql 데이타베이스의 테이블 확인 : mysqlshow 명령 사용 % mysqlshow -u root mysqlDatabase: mysql+--------------+| columns_priv || db          || func        || host        || tables_priv  || user        |+--------------+
 

- user 테이블이 사용자 권한에 관한 테이블임

user 테이블의 레코드 확인 % mysql -u rootWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 4 to server version: 3.22.22Type 'help' for help.mysql> use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select * from user;+-----------+------+----------+-------------+-------------+-------------+------+| Host      | User | Password | Select_priv | Insert_priv | Update_priv | Delet|+-----------+------+----------+-------------+-------------+-------------+------+| localhost | root |          | Y          | Y          | Y          | Y    || orange    | root |          | Y          | Y          | Y          | Y    || localhost |      |          | N          | N          | N          | N    || orange    |      |          | N          | N          | N          | N    |+-----------+------+----------+-------------+-------------+-------------+------+4 rows in set (0.01 sec)mysql>
 

- "*.priv" 컴럼: 사용 권한에 대한 설정, Y 이면 권한을 가짐을, N이면 권한이 없음을 의미
- "Password" 컬럼 : 암호의 설정 상태를 의미, 현제 root는 암호가 없음

root 사용자에 대하여 암호를 설정 mysql> update user set password = password('apple1234')  => 암호 설정    -> where user='root' ;Query OK, 2 rows affected (0.13 sec)Rows matched: 2  Changed: 2  Warnings: 0mysql> quit => 종료Bye% mysqladmin -u root reload => 권한이 변경된 경우 변경된 권한을 다시 읽어 들임% mysql -u root -p          => 암호가 있는 경우 -p 옵션을 붙여서 mysql을 수행Enter password: XXXXXXXXXXWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 8 to server version: 3.22.22Type 'help' for help.mysql> select * from user;+-----------+------+------------------+-------------+-------------+------------+| Host      | User | Password        | Select_priv | Insert_priv | Update_priv|+-----------+------+------------------+-------------+-------------+------------+| localhost | root | 32b157395f7543c0 | Y          | Y          | Y          || orange    | root | 32b157395f7543c0 | Y          | Y          | Y          || localhost |      |                  | N          | N          | N          || orange    |      |                  | N          | N          | N          |+-----------+------+------------------+-------------+-------------+------------+4 rows in set (0.01 sec)mysql>
 

3.3 사용자 추가
"INSERT .. INTO" 명령을 이용해서 mysql 데이타베이스의 user 테이블에 추가 % mysql -u root -p mysqlEnter password:XXXXXXXXXXReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -AWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 11 to server version: 3.22.22Type 'help' for help.mysql> insert into user values('localhost', 'wiseo', ==> 사용자 wiseo에게 모든 권한    -> password('apple2000'), 'Y', 'Y', 'Y', 'Y',    -> 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',    -> 'Y', 'Y');Query OK, 1 row affected (0.01 sec)mysql> select * from user;+-----------+-------+------------------+-------------+-------------+-----------+| Host      | User  | Password        | Select_priv | Insert_priv | Update_pri|+-----------+-------+------------------+-------------+-------------+-----------+| localhost | root  | 32b157395f7543c0 | Y          | Y          | Y        || orange    | root  | 32b157395f7543c0 | Y          | Y          | Y        || localhost |      |                  | N          | N          | N        || orange    |      |                  | N          | N          | N        || localhost | wiseo | 6da73b5d2ab9ea69 | Y          | Y          | Y        |+-----------+-------+------------------+-------------+-------------+-----------+5 rows in set (0.01 sec)mysql>
 

- 권한을 부여 하고자 한다면 해당 컬럼의 값을 'Y'로 아니면 'N'으로 설정

SELECT, INSERT, DELETE에 대한 권한만 주고자 한다면 mysql> insert into user values('localhost', 'wiseo',    -> password('apple2000'), 'Y', 'Y', 'Y');Query OK, 1 row affected (0.01 sec)mysql>
 

"GRANT" 명령을 이용해서 mysql 데이타베이스의 user 테이블에 추가 mysql> grant all priviledges on *.* to *** 개인정보보호를 위한 이메일주소 노출방지 ***,청주% mysql guestbookReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -AWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 15 to server version: 3.22.22Type 'help' for help.mysql> LOAD DATA INFILE '/home/prof/wiseo/guest.txt' INTO TABLE guest    -> FIELDS TERMINATED BY ',';=> 파일명은 반드시 절대경로명Query OK, 2 rows affected (0.03 sec)Records: 2  Deleted: 0  Skipped: 0  Warnings: 2mysql>
 

3.12.2 테이블에서 데이터를 검색하여 파일로 출력하기
방법: mysql 명령 모드에서 SELECT 문 INTO OUTFILE '출력파일의 경로명';
 

예제 : mysql> SELECT * from guest where age <= 25    -> INTO OUTFILE 'out.txt'    -> FIELDS TERMINATED BY ',' ; => 상대경로명을 사용하면 기준은 DB가 존재하는 디렉토리mysql>
 

 

3.13 테이블의 이름 변경과 컬럼 구조 변경(ALTER 문)
3.13.1 테이블 이름 변경
방법: mysql 명령 모드에서 ALTER TABLE 테이블명 RENAME 새테이블명 ;
 

예제
3.13.2 테이블 컬럼 구조 변경
방법: mysql 명령 모드에서 ALTER TABLE 테이블명 ADD 컬럼명 컬럼 유형; => 새로운 컬럼을 추가ALTER TABLE 테이블명 DROP COLUMN 컬럼명; => 컬럼을 삭제
 

예제
 

3.13 테이블의 삭제
방법: mysql 명령 모드에서 DROP TABLE 테이블명 ;
 

예제
3.14 테이블이나 컬럼의 정보 표시
 


--------------------------------------------------------------------------------

4. C API
4.1 C API의 개요
라이브러리 파일
- 설치 디렉토리 : /usr/lib/mysql
- 기본적으로 mysqlclient 라이브러리와 암호화를 위해서 math 라이브러리를 링크하여야 함
헤드 파일
- 설치 디렉토리 : /usr/include/mysql
- 기본적으로 mysql.h 헤더 파일을 include 하여야 함. #include "mysql.h"
 

컴파일
% cc -I/usr/include/mysql -L/usr/lib/mysql myapp.c -o myapp -lm -lmysqlclient
 

프로그램의 기본 구조 : mysql001.c
4.2 주요 함수
MYSQL *mysql_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd)
- 데이터베이스 엔진과 연결을 설정하는 함수
- 파라메터

mysql 연결에 관한 정보, (MYSQL*) 0으로  지정하면 연결에 관한 정보를 위한  메모리를  할당하고, 해제(free)시킨다. 단, 이  옵션을  쓰면 mysql_connect로부터  오류  메시지를  얻을  수  없다
host 호스트  이름, 또는 IP address, NULL이면 'localhost'로  처리
user 사용자의 MySQL login ID, NULL이면 '현재  사용자'로  처리, ODBC 상에서는  생략할  수  없음
passwd 암호

- 복귀 값 : 연결이 설정이 성공하면 mysql을, 실패하면 NULL을 복귀

int mysql_select_db(MYSQL *mysql, const char *db)
- mysql_connect() 함수가 성공적으로 수행된 후에 호출하는 함수
- 서버에서 관리하고 있는 데이터베이스 중 접근하려는 데이터베이스를 선택하는 함수
- 파라메터 mysql mysql_connect() 함수가 복귀한 값을 지정
db 사용하고자 하는 데이터베이스의 이름을 의미하는 문자열 

- 복귀 값 :

int mysql_query(MYSQL *mysql, const char *query);
- mysql에 의해서 지정된 데이터베이스에 query에 의해서 지정된 SQL 쿼리를 실행한다.
- 쿼리가 성공적으로 실행되었다면, 0을 리턴한다. 에러 시에는 0이 아닌 값을 리턴한다
- 오류 메시지를 확인하려면 mysql_error를 사용한다.
- mysql_num_rows를 사용하면, 쿼리에 의해서 리턴된 행(row)의 수를 알 수 있다
- 만약 INSERT하려는 테이블에 AUTO_INCREMENT 필드가 있다면, mysql_insert_id를 사용하여 새로 지정된 필드를 찾을 수 있다.
MYSQL_RES *mysql_store_result(MYSQL *mysql);
- mysql_query가 성공적으로 실행된 후 그 결과를 읽는다.
- 써버로부터 결과를 가져오기 위해서는 mysql_store_result()나 mysql_use_result()를 써야한다.
- mysql_store_result()는 에러가 발생했거나, 리턴 데이터가 없는 경우에 NULL을 리턴한다. 에러 체크는 아래처럼 할 수 있다:

if (!(result=mysql_store_result(&mysql)) && mysql_num_fields(&mysql))
fputs(mysql_error(&mysql),stderr);
메모리를 해제(free)시키려면 mysql_free_result()를 호출한다.


MYSQL_ROW mysql_fetch_row(MYSQL_RES *res);
- 쿼리 결과로부터 다음 줄(row)을 불러온다. 더 이상 불러올 데이터가 없으면, NULL을 리턴한다.

int mysql_num_fields(MYSQL_RES *result)
- 쿼리 결과에 있는 컬럼(fields)의 숫자를 리턴하는 매크로 함수

int mysql_num_rows(MYSQL_RES *result)
- 가장 최근에 mysql_list_dbs, mysql_list_fields, mysql_list_processes, mysql_list_tables 또는 mysql_store_result에 의해서 리턴된 행수(number of row)를 리턴하는 매크로 함수

void mysql_close(MYSQL *mysql)
- 데이터 베이스 엔진과의 연결을 닫는다.
- 모든 작업이 완료된 후에는 mysql_close으로 connection을 닫아야함.
- 만약 mysql_close를 호출하지않으면, mysql_connect에 의해서 생성된 thread는 내장 time-out에 도달할 때까지 살아있게 되어서, 메모리를 낭비하게 됨.
- 디폴트 timeout은 동작 중인 쿼리에 대해서는 30초, 열린 connection에 대해서는 8시간.
- 복귀 값 : 없음

int mysql_eof(MYSQL_RES *)
- fetch할 자료가 더 있는지를 검사한다.
- 복귀 값 Non-zero mysql_fetch_row()가 결과값을 모두 fetch했기 때문에, 더 이상 fetch할 것이 없다면
Zero(0) mysql_fetch_row()가 fetch할 수 있는 데이터가 남아있음. 

char *mysql_error(MYSQL *mysql)
- mysql 연결에서 가장 최근에 호출된 MySQL 함수의 오류 메시지 문자열을 리턴하는 함수.
- 오류가 발생하지 않았다면, empty string을 리턴


int mysql_affected_rows(MYSQL *mysql)
- 가장 최근의 UPDATE, DELETE 또는 INSERT에 영향을 받은(affected) row의 수를 반환한다.

RETURN VALUE:

x > 0 : 바뀐/반환된 row의 수를 가리킨다.
0 : 해당하는 데이터가 없다
-1 : 에러가 있는 쿼리. 예를 들어, INSERT 도중에 중복된 primary 키를 add하려고 한 경우.
EXAMPLE:

mysql_query( &mysql, "INSERT INTO gl_transact (acctnbr, amount) VALUES (12345, 651.30)" );
if ( mysql_affected_rows( &mysql ) < 0 )
fprintf( stderr, "Attempted to add duplicate primary key\n" );
MySQL은 '테이블에 있는 모든 레코드 삭제' 같은 경우에 대해서 최적화되었다. 이 최적화는 MySQL이 이 경우에 영향을 받은 행(row)의 숫자인 0을 리턴할 것이다. Doing a 'select count(*) from the_table' before deleting all records will give you a value for the number of rows affected, though this value may change between the SELECT and and DELETE since MySQL 3.20.X does not support table locking. 이 버그는 3.21.x 버전에서 고쳐졌다. (역자주. 무슨 얘긴지 종 잡을 수가 없군.)


int mysql_create_db(MYSQL *mysql, const char *db);
- mysql에 의해서 지정된 기계에 db라는 이름의 데이터베이스를 생성한다. 단 create 권한을 가진 user ID에 의해서 MYSQL 연결이 되어있어야한다. (사용자 권한에 대해서는 chapter 5를 참고하라)

- RETURN VALUE: 데이터베이스가 정상적으로 생성되면, 0을 리턴한다.
만약 에러가 발생하면, 0이 아닌 값을 리턴한다. 에러 메시지는 mysql_error()로 확인할 수 있다.

void mysql_data_seek(MYSQL_RES *res, uint offset);
- 쿼리 결과값에서 지정된 행(row)을 찾는다. mysql_use_result()에 의해서 생성된 연결에서는 쓸 수 없다.
- RETURN VALUE : None

int mysql_drop_db(MYSQL *mysql, const char *db);
- mysql에 의해서 지정된 machine으로부터 db라는 이름을 데이터베이스를 drop한다. 지정된 데이터베이스를 drop할 수 있는 권한을 가진 user id로 접속되어있어야한다. (사용자 권한에 대한 자세한 설명은 chapter 6을 참고하라)
- RETURN VALUE: 데이터베이스가 성공적으로 drop 됐다면, 0을 리턴한다.
만약 에러가 발생하면, 0이 아닌 값을 리턴한다. 에러 메시지는 mysql_error를 호출하여 확인할 수 있다.

 
MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *handle);
- 테이블 필드의 타입이 무엇인지 알아낸다.


unsigned int *mysql_fetch_lengths(MYSQL_RES *mysql)
- 쿼리 결과값에 있는 모든 컬럼의 길이를 리턴한다. 만약 \0을 포함하고 있는 데이터를 받을 생각이라면, 당신은 이 함수를 필드 값의 실제 길이를 얻는데 써야한다.

void mysql_field_seek(MYSQL_RES *result, int field)
- 컬럼 커서를 컬럼 번호 field로 옮긴다. 이때, field 값 x는 0 <= x <= mysql_num_fields(MYSQL_RES*)-1 이어야한다.

void mysql_free_result(MYSQL_RES *result);
- 쿼리 결과를 저장하고있는 메모리를 free시킨다. mysql_store_result()에 대한 결과값 사용을 마치고 호출해야한다.

char *mysql_get_client_info(void);
- 현재 쓰이고 있는 client 라이브러리의 버전 정보를 포함하고 있는 스트링을 리턴한다.

char *mysql_get_host_info(MYSQL *mysql);
- host의 이름을 리턴한다 (mysql_connect와 host 인자(argument)는 같다).

int mysql_get_proto_info(MYSQL *mysql);
- 연결에 쓰이고 있는 프로토콜의 버전을 얻는다. MySQL은 client 특성에 따라 동적인 프로토콜을 제공한다. 단, 3.20.x 버전에서는 아무런 일도 하지 않는다. but in future versions it will for example allow one client to connect using the current protocol, while another connects using encryption and compression.

char *mysql_get_server_info(MYSQL *mysql);
- 써버의 버전 번호를 리턴한다.

int mysql_insert_id(MYSQL *mysql)
- 결과 변수인 'res'에서 AUTO_INCREMENT 필드를 위해서 생성된 ID를 리턴한다.


MYSQL_RES *mysql_list_dbs(MYSQL *mysql, const char *wild);
- mSQL 어플리케이션을 쉽게 포팅하기 위해서 제공되었다.

쿼리처럼 'SHOW databases [ LIKE wild-card ]'를 실행하는 것과 유사하다.

MYSQL_RES *mysql_list_fields(MYSQL *mysql, const char *table, const char *wild);
- mSQL 어플리케이션을 쉽게 포팅하기 위해서 제공되었다.

쿼리에서 'SHOW fields [FROM table] [FROM database] [LIKE wild-card]'를 하는 것과 유사하다.

MYSQL_RES *mysql_list_processes(MYSQL *mysql);
- MySQL 데이터베이스 엔진에서 현재 실행 중인 thread의 리스트를 얻는다. 단, process 권한을 가지고 있어야한다.

MYSQL_RES *mysql_list_tables(MYSQL *mysql, const char *wild);
- mSQL 응용 프로그램을 쉽게 포팅하기 위한 함수.

Similar to doing 'SHOW tables [FROM database]' as a query.

쿼리처럼 'SHOW tables [FROM database]'를 하는 것과 유사하다.

int mysql_real_query(MYSQL *mysql, const char *query, uint length);
- This function is called by mysql_query after it does a strlen function call to calculate the length of the query string. 쿼리 스트링을 위해서 크기가 고정된 버퍼를 할당했다면, 이것을 쓸 수 있다.

만약 un-escaped \0 값을 가지고 있는 데이터를 가지고 있다면, 이 함수를 써야한다.

int mysql_reload(MYSQL *mysql);
- MySQL 데이터베이스 엔진이 사용자 권한 테이블을 다시 읽어들이고, 모든 캐쉬를 정리하고, 쓰이지 않는 모든 테이블을 close한다. 이 함수는 어떤 테이블에 isamchk를 실행하기 전에 꼭 호출해야한다.

단, 사용자가 reload 권한을 가지고 있어야한다.

int mysql_shutdown(MYSQL *mysql)
- MySQL 데이터베이스 엔진을 shutdown한다. 단, 사용자가 shutdown 권한을 가지고 있어야한다.

char *mysql_stat(MYSQL *mysql);
- 커맨드 'mysqladmin version'과 유사한 정보를 문자 배열로 리턴한다. 이것은 실행시간(updatime), 실행 중인 thread, 질문들(역자주 쿼리가 아니라 질문?), reload되거나 open된 테이블에 대한 정보를 포함하고 있다. 이것은 본질적으로 mysqladmin 프로그램의 상태 옵션과 비슷하다.

MYSQL_RES *mysql_use_result(MYSQL *mysql);
-결과를 mysql_fetch_row()에 의해서 써버에서 동적으로 불러오는 것을 제외하면, mysql_store_result()와 같다. 이것은 써버에 ties up하기 때문에, interactive 응용 프로그램에서는 쓰여져서는 안 된다. 이 함수는 client의 메모리를 적게 사용한다.

4.3 프로그램 예제
mysql001.c
 

5. Perl DBI
5.1 Perl DBI 란?

 

5.2 Perl DBI의 설치

 

Perl 지원 Perl `DBD'/`DBI' client code 는 Perl 5.004 이후 버전을 사용해야한다.
Perl 관련 프로그램 세가지를 다운로드한다.('Data-Dumper', 'DBI', 'Msql-Mysql-modules') 'Data-Dumper', 'DBI', 'Msql-Mysql-modules' 을 순서대로 설치한다.
선 압축된 패키지를 푼다.
shell> gunzip | tar xzvf Data-Dumper-VERSION.tar.gz 이렇게 하면 `Data-Dumper-VERSION' 디렉토리가 생긴다.
생성된 디렉토리로 이동
shell> cd Data-Dumper-VERSION 2.9.3
컴파일 하고 설치
shell> perl Makefile.PL
shell> make
shell> make test
shell> make install
테스트 make test는 특히 중요하다. 모든 모듈을 검증하기 때문이다.
나머지지 두개 패키지 설치 나머지 'DBI', 'Msql-Mysql-modules'를 위와 같은 방법으로 설치한다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:27:00 MySQL에서 이동 됨]</div>
추천
0

댓글 0개

전체 55
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT