2017-05-23 1 views
0

c++ 코드에서 MemSQL 데이터베이스에 연결하려고하고 있는데 SQLApi++ 라이브러리를 사용하고 있습니다. MySQL 클라이언트는 MemSQL과 호환되며 SQLApi++MySQL을 지원합니다. 그러나 나는 연결할 수없고 다른 오류가 발생합니다. 예를 들어SQLApi ++를 통해 MemSQL에 연결할 수 없습니다

, 나는 오류가 Access denied for user 'root'@'localhost' (using password: NO) 말을 다음과 같은 매개 변수

Connect("tcp://localhost:3307", "root", "", SA_MySQL_Client) 

얻을 연결 전화 드렸습니다.

인터넷에서 검색 한 결과 DB 호스트 이름을 지정하는 여러 버전을 시도했지만 그 중 일부는 작동하지 않았습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 올바른 버전은 무엇입니까? 어떤 아이디어?

참고 : memsql -P 3307을 실행하여 명령 줄에서 MemSQL에 연결할 수 있습니다.

답변

0

로컬 IP 주소와 포트를 제공 한 경우 어떤 이유로 SQLApi++이 무시하고 항상 MySQL의 소켓 (기본 경로 : /var/lib/mysql/mysql.sock)에 연결하려고 시도했습니다.

그러나 다시 한 번 documentation을 읽은 후 소켓 경로를 호스트 이름으로 전달할 수 있음이 밝혀졌습니다. 그래서 나는 MemSQL의 소켓 경로를 넘겼다.

0

MySQL을 MemSQL과 동일한 컴퓨터에 설치 했습니까? localhost는 일부 클라이언트에서는 MySQL로 리디렉션 할 수 있지만 127.0.0.1은 사용하지 않습니다 (https://docs.memsql.com/v5.7/docs/how-to-connect-to-memsql 참조)

Connect ("tcp : //127.0.0.1 : 3307", "root", ""SA_MySQL_Client ") 작업?

+0

예, MySQL이 설치되어 있습니다. IP로 시도했지만 동일한 오류가 발생합니다. – nabroyan

+0

또한 내 질문을 업데이트했습니다. 커맨드 라인에서 연결할 수는 있지만'C++ '코드로는 할 수 없습니다. – nabroyan

+0

SqlAPI ++에 대한 문서를 보면 마지막 매개 변수는 열거 형이며 문자열로 전달한 것 같습니다. Connect ("tcp : //127.0.0.1 : 3307", "root", "", SA_MySQL_Client) –

관련 문제