Qt5.11.2, iMAC 상의 QSql 데이터베이스 및 MariaDB
iMAC에서 MariaDB에 연결하려고 합니다.데이터베이스 이름과 연결할 사용자 이름, 비밀번호가 정확한 것으로 알고 있습니다.
Qt5.11.2를 설치했고 다음을 시도하고 있습니다.
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("Simons-iMac.local");
db.setDatabaseName("timekpr");
db.setUserName("timekpr");
db.setPassword("timekpr");
bool ok = db.open();
단말기에서 호스트 이름을 ping했는데 IP 주소가 반환되었습니다.
오픈 메소드에 도달하면 false를 반환합니다.왜 실패하고 있는지에 대한 더 많은 정보를 얻기 위해 제가 할 수 있는 일이 있을까요?
iMAC에서 iOS Mojave 버전 10.14를 실행하고 있습니다.
[편집] 디버거를 사용하여 이 작업을 실행하면 Application Output 창에 표시됩니다.
2018-10-04 15:46:27.868976+0100 SimonQtWidgets[21670:626041] [default] Unable to load Info.plist exceptions (eGPUOverrides)
2018-10-04 15:46:30.472706+0100 SimonQtWidgets[21670:625982] QSqlDatabase: QMYSQL driver not loaded
2018-10-04 15:46:30.472764+0100 SimonQtWidgets[21670:625982] QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
2018-10-04 15:46:34.975324+0100 SimonQtWidgets[21670:625982] QSqlError("", "Driver not loaded", "Driver not loaded")
QMYSQL 두 번째 라인에 따르면 무슨 일인지 잘 모르겠습니다.그런데 보고된 오류가 드라이버가 로드되지 않은 것입니까??
도움이 되는 경우:
Hardware Overview:
Model Name: iMac
Model Identifier: iMac17,1
Processor Name: Intel Core i7
Processor Speed: 4 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 8 MB
Memory: 16 GB
Boot ROM Version: IM171.0157.B00
SMC Version (system): 2.34f2
[Another Edit] 실행 시간 환경에 QT_DEBUG_PLUGINS=1을 추가하면 Application Output에 표시됩니다.
2018-10-10 10:30:42.060973+0100 SimonQtWidgets[2001:286805] Got keys from plugin meta data ("QPSQL7", "QPSQL")
2018-10-10 10:30:42.060985+0100 SimonQtWidgets[2001:286805] QFactoryLoader::QFactoryLoader() checking directory path "/Users/simonplatten/build-SimonQtWidgets-Desktop_Qt_5_11_2_clang_64bit-Debug/SimonQtWidgets.app/Contents/MacOS/sqldrivers" ...
2018-10-10 10:30:42.063252+0100 SimonQtWidgets[2001:286805] Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
Reason: image not found)
2018-10-10 10:30:42.063276+0100 SimonQtWidgets[2001:286805] QLibraryPrivate::loadPlugin failed on "/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib\n Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib\n Reason: image not found)"
2018-10-10 10:30:42.063293+0100 SimonQtWidgets[2001:286805] QSqlDatabase: QMYSQL driver not loaded
2018-10-10 10:30:42.063465+0100 SimonQtWidgets[2001:286805] QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
Qt는 mysql이 다음 위치에 있을 것으로 예상하는 것 같습니다.
/usr/local/mysql/
내가 가지고 있는 설치는 그렇지 않습니다. 나는 다음을 사용하여 mysql을 검색했습니다.
find / -name mysql
검색 결과:
/usr/local/bin/mysql
또한:
/usr/local/Cellar/mariadb/10.1.17/bin/mysql
/usr/local/Cellar/mariadb/10.1.17/include/mysql
/usr/local/Cellar/mariadb/10.1.17/share/mysql
/usr/local/Cellar/mariadb/10.2.6/bin/mysql
/usr/local/Cellar/mariadb/10.2.6/include/mysql
/usr/local/Cellar/mariadb/10.2.6/include/mysql/mysql
/usr/local/Cellar/mariadb/10.2.6/.bottle/etc/init.d/mysql
/usr/local/Cellar/mariadb/10.2.6/.bottle/etc/logrotate.d/mysql
/usr/local/Cellar/mariadb/10.2.6/share/mysql
나는 또한 이것을 공유했습니다.
lrwxr-xr-x 1 simonplatten admin 36 10 Jun 2017 mysql -> ../Cellar/mariadb/10.2.6/share/mysql
Qt가 mysql을 찾는 곳에 변경 사항이 있습니까?
고정, 다음 방법:
/usr/local에서 필요한 폴더 구조를 수동으로 만듭니다.
sudo mkdir mysql
cd mysql
sudo mkdir lib
cd lib
필요한 라이브러리에 대한 심볼릭 링크 생성:
sudo ln -s /usr/local/lib/libmysqlclient.dylib /usr/local/mysql/lib/libmysqlclient.20.dylib
그 다음 도메인 이름을 사용하여 연결하는 또 다른 문제를 강조하여 localhost를 사용하여 해결했습니다.
언급URL : https://stackoverflow.com/questions/52649391/qt5-11-2-qsqldatabase-and-mariadb-on-imac
'programing' 카테고리의 다른 글
CSS/HTML만 사용하여 이미지 깨짐 아이콘을 숨기는 방법? (0) | 2023.09.25 |
---|---|
새 데이터베이스 서버로 마이그레이션됨. 동일한 쿼리가 매우 느림 (0) | 2023.09.25 |
스레드에서 생성된 개체는 동일한 스레드에서만 사용할 수 있습니다. (0) | 2023.09.25 |
NULL 입력 파라미터를 Oracle 저장 프로시저로 제한하는 방법 (0) | 2023.09.25 |
AntiXss의 차이점은 무엇입니까?HtmlEncode 및 HttpUtility.htmlEncode? (0) | 2023.09.25 |