2013년 12월 19일 목요일

비쥬얼 C++에서 XAMPP의 MySQL 데이터베이스로 연결해보자


잼프(XAMPP)를 컴퓨터에 이미 설치했다면 MySQL 데이터베이스를 C/C++로 연동하기 위해 따로 MySQL 데이터베이스를 설치할 필요가 없다... 단지 MySQL C API 가 필요하기때문에  MySQL Connector/C 를 다운받아 설치하고 몇개의 파일을 잼프폴더로 붙여넣어야한다. 밑에 설명과정에는 윈도우7 32-bit, 비쥬얼 스투디오 2008(VC++ v9), 잼프 1.8.2, MySQL Connector/C 6.1.2 를 사용하였다.

1. 먼저 잼프(XAMPP)를 미리 설치한 상태가 아니면 밑에 링크를 참고하시기를.
http://altanativ.blogspot.com/2013/12/xampp.html

2. 비쥬얼 스투디오는 2008/2010/2012를 사용하면 되고 Express버전도 사용 가능하다고 본다.

3. MySQL Connector/C (MySQL C API)는 밑에 링크에서 다운받아 설치하자.
http://dev.mysql.com/downloads/connector/c/  
윈도우 버전 잼프의 MySQL이 32-bit이기때문에 32-bit MSI Installer를 다운받아 설치하자.

4. 이제 MySQL Connector/C가 설치된 폴더(C:\Program Files\MySQL\MySQL Connector C 6.1)를 열면 아래와 같은 폴더들이 있을것이다.














여기에서 "include"폴더를 열어 "mysql"폴더를 포함한 모든 파일을 복사하여 잼프의 MySQL 인클루드폴더(C:\xampp\mysql\include)에 덮어쒸운다.


5. 다음 C:\Program Files\MySQL\MySQL Connector C 6.1\lib폴더의 "libmysql.dll"파일을 복사하여 C:\Windows\System32폴더에 붙여넣는다.















6. 이제 잼프 컨트롤 패널을 시작하고  ApacheMySQL옆에 "Start"버튼을 눌러 서버를 기동한다.














7. 다음 데이터베이스에 비밀번호를 셋팅하기위해 웹브라우저를 열고 주소창에 "localhost"를 치고 엔터를 누른다.
비밀번호를 예전에 셋팅했다면 이단계는 스킵해도 된다.
왼쪽에 "Security"를 클릭하고 다음창에서 "http://locahost/security/xamppsecurity.php"링크를 클릭한다.
































원하는 비밀번호를 두번 입력하고 "Password changing"버튼을 누른다.
















8. 자 이제 비쥬얼 C++에서 새프로잭트를 만들어 데이터베이스에 연결해보자.
비쥬얼 C++를 열고 메뉴에서 File > New > Project 를 클릭하여 새프로젝트를 만든다.
프로젝트 타입을 Win32로 정하고 템플릿을 Win32 Console Application으로 정한다음 프로젝트 이름을 입력한다.















9. 다음창에서 "Next"버튼을누르고 "Application Settings"창에서 밑 스크린샷처럼 셋팅한 후 "Finish"버튼을 누른다.


















10. VC++ 왼쪽 "Solution Explorer"창에 "Source Files"폴더를 오른쪽 마우스 버튼으로 클릭하여 Add > New Item 을 선택하고 "main.cpp"파일을 생성한다.














11. 다음 왼쪽 "Solution Explorer"창에 프로젝트 이름을 오른쪽 마우스 버튼으로 클릭하고 "Properties"를 선택한다.




















12. 팝업창 왼쪽에 C/C++ 밑에 General 을 클릭하고 오른쪽에 "Additional Inlcude Directories"를 선택하여 잼프의 마이시퀄 인클루드 폴더(C:\xampp\mysql\inlcude)를 추가한다. "적용" 버튼을 누른다음 창은 아직 닫지말자.

















13. 이제 왼쪽에 Linker 밑에 General 을 클릭하고 오른쪽에 "Additional Library Directories" 를 선택하여 마이시퀄 커넥터의 라이브러리 폴더(C:\Program Files\MySQL\MySQL Connector C 6.1\lib)와 그하위에 있는 "vs9" 폴더를 추가한다. 만약 비쥬얼 스투디오 2010을 사용한다면 "vs9" 폴더 대신"vs10"을 추가한다. "vs11"폴더는 비쥬얼 스투디오 2012용 이다.
A. C:\Program Files\MySQL\MySQL Connector C 6.1\lib
B. C:\Program Files\MySQL\MySQL Connector C 6.1\lib\vs9
그리햐여 위의 두개의 라이브러리 폴더가 추가된다.
"적용" 버튼을 누른다.
















14. 마지막으로  Linker 밑에 Input 을 클릭하고 오른쪽에 "Additional Dependencies"에 "libmysql.lib" 파일과 "mysqlclient.lib"를 추가한다.

































15. 자 이제 프로젝트 셋팅은 끝났다. 실제 C/C++ 코드를 써서 MySQL 데이터베이스와 연동해보자.
먼저 잼프컨트롤 패널에서 ApacheMySQL서버를 시작한다.
다음 비쥬얼 스투디오의 "main.cpp"에 밑의 코드를 입력한다음 빌드하고 런한다.



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

int main()
{  
  MYSQL *con = mysql_init(NULL);

  if (con == NULL) 
  {
      fprintf(stderr, "%s\n", mysql_error(con));
      exit(1);
  }

  if (mysql_real_connect(con, "localhost", "uid", "password", 
          NULL, 0, NULL, 0) == NULL) 
  {
      fprintf(stderr, "%s\n", mysql_error(con));
      mysql_close(con);
      exit(1);
  }
  else
      fprintf(stderr, "%s\n", "Database connection success!");  

  if (mysql_query(con, "CREATE DATABASE mytestdb")) 
  {
      fprintf(stderr, "%s\n", mysql_error(con));
      mysql_close(con);
      exit(1);
  }
  else
  fprintf(stderr, "%s\n", "mytestdb database was created!");

  mysql_close(con);
  getchar();
  return 0;
}



윗 코드의 "uid""password"는 자신의 데이터베이스 사용자 ID와 비밀번호로 입력해야된다. 성공적으로 런되면 밑의 메시지가 콘솔창에 뜬다.














실제 데이터베이스를 확인하고 싶으면 웹브라우저로 "localhost"에 들어가 "phpMyAdmin" 페이지를 열어 확인할 수 있다. "mytestdb"가 생성되어 있다.
















댓글 없음:

댓글 쓰기