2012-04-20 7 views
0

내 호출 코드가 + + MySQL을 사용 mysql을 연결하는 데 실패하지만, 프로그램이 소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 말하는 '/ tmp를/MySQL의 실패 .sock '(111)는</p> <pre><code>bool suc = conn.connect("mydb", "localhost", "root", ""); if (suc) { cout << "success" << endl; } else { cout << "fail " << conn.error() << endl; } </code></pre> <p>을 다음과 MySQL 서버가 실행되고

누구나 그런 문제가 있습니까?

MySQL의 설정 파일이 가능성이

MySQL이 실행중인 경우 /etc/my.cnf에 여기에 있습니다

+0

소켓 파일이/tmp에 없거나 mysql이 실행되고 있지 않습니다. 연결했지만 로그인 할 수없는 경우 권한이 거부됩니다. 소켓 파일은/tmp에있을 가능성이 매우 적습니다. 왜냐하면 해당 디렉토리가 OS에 의해 자동 정리 될 수 있기 때문입니다. 아마/var에 어딘가에있을 가능성이 높지만 mysql .cnf/.ini 파일을 점검하여 그것이 실제로 무엇인지 확인해야합니다. –

+0

나는 /tmp/mysql.sock 파일을 가지고 있고 mysql도 실행 중이다. 사용자 이름 루트와 빈 passwd를 사용하여 로그인 할 수있다. 잠깐, .cnf/.ini의 전체 경로는 무엇인가? 나는 수표를 가져 가고 싶다. – speedmancs

+0

mysql 커맨드 라인 프로그램으로 연결할 수 있습니까? –

답변

0

, 로그를 확인하는 것이 도움이 될 수도,해서/var/log에 위치해야/

명명 된 뭔가 같은 :
mysql.log
mysql.err
mysqld.log
mysqld.err

$ ls -l /var/log/ 
// when you have the name try 
$ tail -n 50 /var/log/LogName