Development/C++

MySQL C API를 이용해서 MySQL 서버에 접속

연탄집게 2008. 4. 8. 14:38

MySQL C API를 이용해서 MySQL 서버에 접속해보자.   ( MySQL 5.0 )

MySQL C API 란 .. ?

 MySQL C API는  MySQL 팀이 개발했기 때문에 가장 광범위하게 쓰이며 , 다른 API의 기초가 된다.

 
- MySQL 5.0 한글 메뉴얼 참고.
  1. MySQL 설치하기 
  2. MySQL 함수의 개요 
  3. MySQL 계정 추가하기 
  4. MySQL , VC 로 접속하기


4. MySQL, VC로 접속하기 ( 클라이언트 프로그램 )


4 - 1 . 라이브러리 를 System32 폴더에 복사한다.

    컴파일을 위해 System32 폴더에 libmysql.dll 파일을 복사한다.



4 - 2 . MYSQL 폴더 안의 lib , include 폴더를 확인한다.

   없을시에는 mysql 5.0 재설치하여 소스파일도 같이 설치한다.


4 - 3 . VC 에서 옵션에서 lib , include 폴더를 링크한다.

    Tools => Options => Directories 에서 각각.
            include files => MYSQL include 폴더 추가.
            ex  )  C\mysql-5.0.45\include

            Library files => MySQL lib/opt , lib/debug  추가
            ex  )  C\mysql-5.0.45\lib\opt
                    C\mysql-5.0.45\lib\debug


4 - 4 . 프로젝트 셋팅 .

위 상태에서 Mysql C API 를 쓰면 컴파일 에러가 발생한다.
   소켓 lib 가 설정되지 않았기 때문이다.
   project --> settings --> [link] 에 ws2_32.lib 추가.
 
   이 상태에서는 컴파일까지는 되지만, 링킹 과정에서 unresolved external symbol 가 발생한다.
   project --> settings --> [link] 에 libmySQL.lib 추가.


4 - 5 VC 로  예제 소스를 구현한다.

#pragma comment(lib, "libmysql.lib")

#include <winsock2.h>
#include <stdio.h>
#include <mysql.h>

#define HOST_NAME "210.xxx.xxx.xxx"
#define USER_NAME "monty"
#define USER_PASS "some_pass"
#define DB_NAME  "test"

int main() {
 
    MYSQL mysql;

    mysql_init(&mysql);

    if (!mysql_real_connect(&mysql,HOST_NAME,USER_NAME,USER_PASS,DB_NAME,0,NULL,0))
   {
       fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
    }
    printf(" Hi MySQL C API 성공 \n");
 
    mysql_close(&mysql);
    return 0;
}




[출처] *  VC++과 Mysql C Lib 연동하기 팁
            *  VC 로 MYSQL 연결하기 : 4. MYSQL , VC 로 접속하기 
              - http://sagidong.tistory.com