visual studio는 다운로드가 되어있는 상태라고 가정하고 maria db를 설치하겠습니다.
![](https://blog.kakaocdn.net/dn/RfyEz/btszcHk2fIc/RskfnJLHLW9aK4g4uAFoA1/img.png)
download 눌러서 들어가고
![](https://blog.kakaocdn.net/dn/bFM3gJ/btsy8sCVtJD/Reu9HlZr7mjfWs6llkmSeK/img.png)
maria db 11.1.2 stable한 버전으로 받아줍니다
버전은 변경 될 수도 있으니 뒤에 alpha, rc같은게 안붙은 버전 받아주시면 됩니다
![](https://blog.kakaocdn.net/dn/PaNwZ/btsy9gI10Ip/nA2XtAFPWwXwAKXphL31f0/img.png)
계속 쭉쭉 next~
![](https://blog.kakaocdn.net/dn/vDONX/btszbjFdGSV/Am0Ob2LOiV9eNs77l0GRXK/img.png)
계속 쭉쭉 next~
![](https://blog.kakaocdn.net/dn/cgcILj/btsy8qyj08y/kkyxhbnRkS6KyEkdBaFnx0/img.png)
계속 쭉쭉 next~
![](https://blog.kakaocdn.net/dn/dttcQh/btsy8taLo54/x3HN2Gnsppla8fC6tNgXM1/img.png)
자 여기 중요한데 user id가 root이고 password를 설정해주는 과정입니다.
여기서 입력하는 패스워드는 나중에 visual studio cpp파일에서 작성하는 코드 안에도 들어가기 때문에 까먹으면 안됩니다
![](https://blog.kakaocdn.net/dn/KHLUt/btszdqcexUQ/mTY0o4SgKzEw8cS4vhmpY0/img.png)
![](https://blog.kakaocdn.net/dn/cidRGH/btszbhtRrbt/pRdiVieR4ggz62DiFcuXc0/img.png)
next누르고 install 해줍니다.
maria db가 깔렸다면
![](https://blog.kakaocdn.net/dn/rWfBt/btsy9dldREk/nBBum9zVrOOYPsuiTSp5k0/img.png)
이 프로그램을 실행시켜 줍니다.(관리자 권한으로 안하면 안되는 pc들도 있다고 피드백 받음)
![](https://blog.kakaocdn.net/dn/bzctiP/btszbhgkzP3/lVuXeSekz4ZEsj6jIW4S21/img.png)
신규버튼을 눌러서
![](https://blog.kakaocdn.net/dn/M59kt/btszdoyJsXY/ZdKWYHq3aCCLxW5I4LbH21/img.png)
정보들을 입력해주고 열기버튼을 눌러주면(관리자 권한으로 안하면 안되는 pc들도 있다고 피드백 받음)
![](https://blog.kakaocdn.net/dn/eBQRVo/btsy8sbOwy6/aKZzGtNcQhqZmfjhjvk7YK/img.png)
db가 열렸습니다.
![](https://blog.kakaocdn.net/dn/bh2Pah/btszcanstmB/0fKZgkJrQGaripKZShggAK/img.png)
넣어주고 저장버튼 눌러주면
![](https://blog.kakaocdn.net/dn/OdhRV/btszcNMiK8a/lNRq6YxsukH5JGYFu6WGW1/img.png)
![](https://blog.kakaocdn.net/dn/mE8wu/btsy8plUJV3/obd2gpUP8a52MshZ34BBk1/img.png)
만들어준 test 이름으로 새로운 테이블이 생성된 것을 확인 할 수 있다.
![](https://blog.kakaocdn.net/dn/uPY1p/btszbMmRxAf/IvuFZkDywv0MsoyGrRyX3k/img.png)
쿼리를 눌러 들어간 후 해당 sql문을 입력하고 실행시킨다.(재생버튼 클릭 or F9)
value 내부의 값을 1로 2번 입력하고 2로 1번 입력해주겠습니다.
![](https://blog.kakaocdn.net/dn/JzI2U/btsy8iABHXK/6AoNG0evKSALiuA1g2qCr0/img.png)
입력 후에 SELECT를 통해 잘 삽입되었는지 체크해준다.
======================================maria db 설치===========================================
여기까지 완료되었다면 visual studio에서 세팅을 해주어야 한다.
visual studio 키고 속성에 들어가서
![](https://blog.kakaocdn.net/dn/bp2lPA/btszbPjv00a/gOFKj4LoK7Mk4tU1dEunG0/img.png)
![](https://blog.kakaocdn.net/dn/pTjTo/btsy9gCgeox/gsG3L0bj9gwR2RChTfYg91/img.png)
![](https://blog.kakaocdn.net/dn/bzhxn3/btszbWXhDhV/ZhIPENhgnyjcKdpwMBJ9j0/img.png)
![](https://blog.kakaocdn.net/dn/DvnWt/btszcansIqM/Gwv22X6ziVjuOyKhglMe9k/img.png)
![](https://blog.kakaocdn.net/dn/BbqDn/btszbT7jwEF/GkH9aKeeWIVJpv3ppmDUt0/img.png)
![](https://blog.kakaocdn.net/dn/nDSzM/btsy8o1AEDq/kGs4OpQlA7voKgc8tMEgAK/img.png)
libmariadb.dll 파일을 프로젝트 솔루션이 있는 폴더 내부로 복사해줍니다.
![](https://blog.kakaocdn.net/dn/eKkBEn/btsy9M8JxN3/xfHETNds26IPHj3BF9WyC1/img.png)
![](https://blog.kakaocdn.net/dn/cT1XuK/btszcF1Qhmq/enKSX2XbnLUnVwwk27dap1/img.png)
만약 안했다면 코드를 실행시킬 때
![](https://blog.kakaocdn.net/dn/T3aZB/btszbLuHYEh/9UhHuFfmvtWwYtr0NFIq40/img.png)
이런 오류창이 나옵니다.
거의 다왔습니다...!
이제 아래 cpp 파일을 만들어줍니다.
#include <iostream>
#include <mysql.h>
using namespace std;
void main()
{
MYSQL* conn;
MYSQL* conn_result;
unsigned int timeout_sec = 1;
conn = mysql_init(NULL);
mysql_options(conn, MYSQL_OPT_CONNECT_TIMEOUT, &timeout_sec);
conn_result = mysql_real_connect(conn, "127.0.0.1", "root", "비밀번호", "mysql", 3306, NULL, 0);
//비밀번호 바꿔주세요!!
if (NULL == conn_result)
{
cout << "DB Connection Fail" << endl;
}
else
{
cout << "DB Connection Success" << endl;
char query[1024];
MYSQL_RES* result;
MYSQL_ROW row;
sprintf_s(query, 1024, "SELECT * FROM test");//아까전에 만들어줬던 db 내 테이블 이름
// Send Query
if (mysql_query(conn, query))
{
cout << "SELECT Fail" << endl;
}
// Get Response
result = mysql_store_result(conn);
int fields = mysql_num_fields(result); // 필드 갯수 구함
while (row = mysql_fetch_row(result)) // 모든 레코드 탐색
{
for (int i = 0; i < fields; i++) // 각각의 레코드에서 모든 필드 값 출력
{
cout << row[i] << " ";
}
cout << endl;
}
mysql_free_result(result);
mysql_close(conn);
}
return;
}
실행결과 값을 잘 불러온 것을 확인할 수 있습니다.
![](https://blog.kakaocdn.net/dn/Y0KqB/btszb5zJggp/q8KiRDOcZ46QCIBOIYEFY0/img.png)
알아야 할 주요 코드만 살펴보겠습니다.
14번 라인 conn_result = mysql_real_connect(conn, "127.0.0.1", "root", "dnckdals1!", "mysql", 3306, NULL, 0);
첫번째 인자 conn은 mariadb와의 연결상태, 두번째 인자는 해당 db의 ip주소, 세번째 인자는 mariadb의 id, 네번째 인자는 mariadb의 pw(꼭 변경해주세요!), 다섯번째는 mariadb내에서 접근할 database의 이름, 여섯번째 인자는 해당 db의 port주소 , 일곱번째 인자는 unix_socket, 여덟번째는 client flag
29번 라인 sprintf_s(query, 1024, "SELECT * FROM test");
3번째 인자에 db로 보낼 sql문을 작성하는 것인데 SELECT를 통해 값을 불러올 수도 있고 INSERT를 통해 값을 추가 할 수도 있다.
여기저기 찾아보면서 엄청난 삽질을 하면서 성공했는데 이 글을 보는 여러분들은 한번에 잘 하시길...!
아래 링크의 글을 보면서 공부하였습니다.
https://languagestory.tistory.com/5
'C++ Programming' 카테고리의 다른 글
[C++ Programming] Template을 사용한 Doubly Linked List 구현 (1) | 2024.03.17 |
---|---|
[C++] MFC에서 CString 사용 시 printf 값이 이상할 경우 해결 방법 (0) | 2023.10.31 |
프로그램 실행 시 메모리 구조 (0) | 2023.10.25 |
[C++ Debugging] LNK1120, LNK2001 에러(Static 사용 시) (1) | 2023.10.24 |
[C++] 바람직한 C++ 프로그래밍 방법 (0) | 2023.10.24 |