자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 델파이10.2에서 MariaDB10버전은 연결이 안되는 건가요
2020.02.05 18:11
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. 늘 눈팅으로 도움받고 있다가 검색으로도 궁금증이 해결되지 않아 글을 남깁니다.
개발환경 : Windows 10 64bit
개발툴 : Delphi 10.2
MariaDB 5.5 이상 지원된다고 명시 되어있어서
(http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_MySQL_Server_(FireDAC))
MariaDB 10.4.12를 설치하고 FireDAC Connection으로 연결 테스트를 진행했습니다.
하지만 아래와 같은 오류를 만나, 위 기술 문서에 명시된 것처럼.
---------------------------
[FireDAC][Phys][MySQL]-314. Cannot load vendor library [libmysql.dll or libmysqld.dll]. 지정된 모듈을 찾을 수 없습니다
Hint: check it is in the PATH or application EXE directories, and has x86 bitness..
---------------------------
LIBMYSQL.DLL 파일을 Mariadb 설치폴더에서 찾아보았으나, LIBMARIADB.DLL 로 되어있더라구요..
혹시나 해서 MariaDB 5.5 버전을 설치해봤더니 거기엔 LIBMYSQL.DLL 이었습니다...
아마 MariaDB가 10버전으로 올라가면서 DLL 명도 바뀐것 같은데요,
제가 DLL 파일명을 강제로 바꿔서 했더니 되긴되더라구요..
여기서 궁금한게, 이렇게 DLL 파일명을 강제로 바꿔도 향후 문제가 없을까요? (LIBMARIADB.DLL -> LIBMYSQL.DLL)
그리고 한가지 더 궁금한 것은 제 OS 환경에 맞춰 MariaDB 64bit를 설치 했지만,
Delphi 10.2 FireDAC과 연결할 수 있는 유일한 방법이
32bit DLL 파일을 sysWOW64폴더에 넣어야지만 연결이 되더라구요... (system32 폴더에 넣으면 안되구요;;)
이게 대체 뭔 상황인지... 이해가 되지가 않네요..;
업무상 델파이 개발을 시작한지 한달도 안되서.. 개념도 부족하고 아리송한 심정에 글을 남겨봅니다..
댓글 2
-
얄리
2020.02.06 10:03
-
육식육식
2020.02.06 10:57
주옥 같은 답변 정말 감사합니다!
음.. 우선 각 사용자 환경마다 테스트를 진행해봐야겠지만,
제가 개념상 이해를 잘 못한 것 같기도 해서 하나만 더 여쭤봅니다.
개발할 때의 환경은 어쩔 수 없이 이렇게 하더라도,
(개발할 때 환경 OS:64bit, 델파이:32bit, MariaDB:64bit, libmysql.DLL:32bit ;;)
사용자 PC에 설치 될 때는 사용자 OS 비트에 맞는 MariaDB 가 설치되도록 하면 되는 걸까요?
(예를 들어, 사용자 환경 OS:64bit 라면 MariaDB:64bit, libmysql.DLL:64bit)
혹시 델파이를 32비트 구동되는 것때문에, 사용자 환경에도 무조건 libmysql.dll을 32bit로 시스템패스에 넣어줘야 할찌..
글을 쓰다보니 제가 계속 비트 수를 무조건 맞춰야 되지 않을까 하는 생각을 하고 있는 것 같긴한데요..
워낙 나중에 문제가 발생되지 않을까 하는 걱정이 들게 되서요 ..;
Delphi 델파이10.2에서 MariaDB10버전은 연결이 안되는 건가요
2020.02.05 18:11
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. 늘 눈팅으로 도움받고 있다가 검색으로도 궁금증이 해결되지 않아 글을 남깁니다.
개발환경 : Windows 10 64bit
개발툴 : Delphi 10.2
MariaDB 5.5 이상 지원된다고 명시 되어있어서
(http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_MySQL_Server_(FireDAC))
MariaDB 10.4.12를 설치하고 FireDAC Connection으로 연결 테스트를 진행했습니다.
하지만 아래와 같은 오류를 만나, 위 기술 문서에 명시된 것처럼.
---------------------------
[FireDAC][Phys][MySQL]-314. Cannot load vendor library [libmysql.dll or libmysqld.dll]. 지정된 모듈을 찾을 수 없습니다
Hint: check it is in the PATH or application EXE directories, and has x86 bitness..
---------------------------
LIBMYSQL.DLL 파일을 Mariadb 설치폴더에서 찾아보았으나, LIBMARIADB.DLL 로 되어있더라구요..
혹시나 해서 MariaDB 5.5 버전을 설치해봤더니 거기엔 LIBMYSQL.DLL 이었습니다...
아마 MariaDB가 10버전으로 올라가면서 DLL 명도 바뀐것 같은데요,
제가 DLL 파일명을 강제로 바꿔서 했더니 되긴되더라구요..
여기서 궁금한게, 이렇게 DLL 파일명을 강제로 바꿔도 향후 문제가 없을까요? (LIBMARIADB.DLL -> LIBMYSQL.DLL)
그리고 한가지 더 궁금한 것은 제 OS 환경에 맞춰 MariaDB 64bit를 설치 했지만,
Delphi 10.2 FireDAC과 연결할 수 있는 유일한 방법이
32bit DLL 파일을 sysWOW64폴더에 넣어야지만 연결이 되더라구요... (system32 폴더에 넣으면 안되구요;;)
이게 대체 뭔 상황인지... 이해가 되지가 않네요..;
업무상 델파이 개발을 시작한지 한달도 안되서.. 개념도 부족하고 아리송한 심정에 글을 남겨봅니다..
댓글 2
-
얄리
2020.02.06 10:03
-
육식육식
2020.02.06 10:57
주옥 같은 답변 정말 감사합니다!
음.. 우선 각 사용자 환경마다 테스트를 진행해봐야겠지만,
제가 개념상 이해를 잘 못한 것 같기도 해서 하나만 더 여쭤봅니다.
개발할 때의 환경은 어쩔 수 없이 이렇게 하더라도,
(개발할 때 환경 OS:64bit, 델파이:32bit, MariaDB:64bit, libmysql.DLL:32bit ;;)사용자 PC에 설치 될 때는 사용자 OS 비트에 맞는 MariaDB 가 설치되도록 하면 되는 걸까요?
(예를 들어, 사용자 환경 OS:64bit 라면 MariaDB:64bit, libmysql.DLL:64bit)혹시 델파이를 32비트 구동되는 것때문에, 사용자 환경에도 무조건 libmysql.dll을 32bit로 시스템패스에 넣어줘야 할찌..
글을 쓰다보니 제가 계속 비트 수를 무조건 맞춰야 되지 않을까 하는 생각을 하고 있는 것 같긴한데요..
워낙 나중에 문제가 발생되지 않을까 하는 걱정이 들게 되서요 ..;
원래 마리아DB가 MY SQL DLL을 공유해서 사용했었는데 요즘 버전은 아예 마리아DB dll이 별도로 있나보군요. 보통 툴에서 마리아DB를 지원하지 않을 경우 Mysql dll로 많이 개발하고 있습니다. 결론은 파일명을 바꿔서 사용해도 무방합니다. 해당 DB의 버전에 맞는 dll 을 사용하는게 중요하지만...
그리고 64비트 dll 문제는 델파이가 32비트로 구동되기 때문에 발생하는 문제 아닐까 합니다. 물론 델파이가 64비트 윈도우에서 구동되고 또한 64비트 응용프로그램을 개발할 수는 있지만 말입니다...
그래서 개발할때 실제로 32비트, 64비트 2가지 라이브러리(dll)를 모두 사용해야 하는데
개발하는 동안에는 개발툴에서 32비트 라이브러리를 참고하고, 64로 컴파일한 결과물은 64비트 라이브러리를 참조하도록 해야 합니다. 통상 32비트 dll은 델파이 IDE 실행파일(bds.exe)과 같은 디렉토리에 설치하고, 64비트 dll은 64비트 프로젝트 실행파일과 같은 디렉토리에 설치하면 됩니다.
물론 배포시에는 32비트 프로그램, 64비트 프로그램 각각 dll을 실행파일과 같은 경로 또는 시스템 패스에 등록된 경로에 배포해야겠죠.