Qt5.15 MySQL Driver 설치 및 추가 오류 수정 방법 (Windows 10)

 *주의*

본 글쓴이는 초급 개발자로, 구글링 한 결과를 종합하여 글을 작성했지만 혹시라도 잘못된 정보를 전달했을 수 있으니 주의 바랍니다.



유튜버 voidrealms의 Qt database Driver에 대한 설명 그림 참조



Qt에서 제공하는 Driver는 Database와 직접적으로 통신하는 게 아니고 DBMS에서 제공하는 3rd Party driver(앱과 라이브)와 통신하고 그 3rd party driver가 db와 통신하게 되는 것이다.

따라서 Qt에서 MySQL을 사용하기 위해서는 MySQL을 설치하는 것 뿐만 아니라 MySQL Connctor도 같이 설치를 하고, 그 후 MySQL Connctor의 경로를 ........... configuration하라는데 무슨말인지 모르겠다. 어쨌든 아래부터는 빌드 방법이다. 사실 다 하고 나면 공식 문서에서 설명해준 그대로 인데, 공식 문서는 친절하지 않아서 커맨드 창 여는 것부터 헤맸다. 다행이도 Qt포럼에 보면 나만 그런 게 아니라서 위안이 됨.


사용 환경
Qt 5.15.2
MySQL Server 8.0
MySQL Connector C 6.1
mingw81_64
Windows 10


1.  MySQL Driver 설치되어 있는지 확인하기 (물론 안되어있을 것임)


우선 .pro 파일에 QT += sql를 사용한다고 적어 놓고,




위와 같이 코드를 작성하면,
qDebug() << QSqlDatabase::drivers(); 에서 사용 가능한 db driver 목록을 확인할 수 있다.
사용할 수 있는 드라이버 목록에 QMYSQL이 없음을 확인할 수 있다.
당연히 db가 open되지 않고, qInfo() << db.lastError();에서
" QSqlDatabase: QMYSQL driver not loaded" 라는 에러가 뜨는 것을 확인할 수 있을 것이다.

 

2. 필요한 드라이버 설치하기

여기서 주의할 점은 꼭 x86,x64를 Qt Driver와 mysql이 동일하도록 설치할 것!   

1) MySQL Connetor C 
(C++는 절대 안됨. 이유는 모르겠음, 다들 그렇게 하라고 해서)  
https://downloads.mysql.com/archives/c-c/?version=6.1.11&amp%3Bos=src 

설치 위치는 C:\Program Files\MySQL\MySQL Connector C 6.1

 2) Qt source 설치

 Qt maintanenase tool에서 source를 다운로드 받기


3.  Driver Configuration 하기 (드라이버 설정하기)

3-1. 커맨드창 열기

 

시작->Qt->Qt 5.15.2(MinGW 8.1.0 64-bit) 실행

3-2. mysql driver 컴파일하기

 순서대로 커맨드창에 커맨드 입력하기

1) cd C:/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers

2) qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Connector C 6.1/include" MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Connector C 6.1/lib"

위에 까지 명령어를 입력했다면 아래와 같은 결과창이 뜰것임.

qt 공식 홈페이지 이미지

 3)mingw64-make install

그러면 촤르륵하고 빌드하기 시작함.

더 자세한 내용을 알고싶다면 https://doc.qt.io/qt-5/sql-driver.html qt 공식문서 참조 


4.  libmysql.dll 복사 

C:\Program Files\MySQL\MySQL Connector C 6.1\lib 에 위치한  libmysql.dll, libmysql.lib을 복사 후 C:\Qt\5.15.2\mingw81_64\bin 붙여넣기

내 프로젝트 실행파일이 위치한 곳에도 libmysql.dll을 붙여넣기


5. driver 설치 확인하기.

 다시 qt로 돌아와서 해당 코드를 실행하면 


위와 같은 결과가 나오는 것을 확인할 수 있을 것이다

이상 MinGW로 MySQL Driver와 연결하는 방법입니다.


note 1

MSVC로 컴파일 할 경우 아래 블로그를 참조. 설명이 잘 되어있습니다.

https://elnee.github.io/development/how-to-build-universal-mysql-driver-for-qt-5-x-x/#building-and-installing-driver

note 2

사실 MySQLConnector dll이 예전 버전이라서 연결이 안 될 경우도 있습니다.
그럴 경우 최신 dll을 다시 다운로드 받고 해당 붙여넣기하라는 폴더에 붙여 넣으면 연결됩니다. (ssl connection error: unknown error number  qmysql unable to connect) 

note 3
이후에 Qt6에서 MySQL 드라이버 설치하는데 성공하면 추가로 글 올릴 예정

 

 

댓글