2013-02-04 2 views
0

mysql에 액세스하는 C 프로그램을 개발 중입니다. 내 코드에 다음 줄이 있습니다.C 프로그램에서 mysql 소켓에 연결할 수 없습니다.

sts = connect_to_server(&mysql, "localhost", "my_username", 
      "my_password, "my_databasename"); 

실제 값은 바뀌 었습니다. 나는 얻는다 :

Failed to connect to MySQL: Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

나는 다른 문제를 봤다, 응답은 보통 서버가 아래로있다. 이 경우에는 그렇지 않습니다. PHPMyAdmin은 서버에 액세스 할 수 있습니다.

다른 많은 응답은 소켓 파일을 확인한다고 말했습니다. 현재 있음

(/Applications/AMPPS/mysql/tmp/mysql.sock). 

경로 또는 무언가와 관련이있을 수 있습니까? "/temp/mysql.sock"에 경로를 추가하지 않으므로 찾을 수 없습니까?

유닉스에 대해 거의 알지 못합니다. 나는 거의 10 년 동안 OSX를 사용 해왔지만 거의 그 수준으로 내려 가지 않았다.

+1

'/ 응용 프로그램/AMPPS/mysql/tmp/mysql.sock'! ='/ tmp/mysql.sock' – alk

+0

알고 있습니다. 나는 약식 경로를 지정하지 않았습니다. 라이브러리 루틴은 다음과 같습니다. 나머지 경로를 알려주는 방법을 묻습니다. 나는 환경 변수를 시도하고 그것을 PATH 자체에 추가했다. 효과가 없습니다. – user157426

+0

MySQL 서버를 다시 시작하면 로그의 오류를 검사합니다. – SparKot

답변

0

mysql 구성 파일 (보통 my.cnt 어딘가 /etc)을 살펴보고 필요에 맞게 socket의 값을 조정하십시오.

Alternativly 당신은 /tmp/mysql.sock/Applications/AMPPS/mysql/tmp/mysql.sock에 연결할 수 :

ln -s /Applications/AMPPS/mysql/tmp/mysql.sock /tmp/mysql.sock 
0

내가 잘못의 my.ini가로드지고 생각합니다. 기본적으로 /etc/my.ini 파일을 찾으면 이름이 변경되거나 삭제됩니다. MySQL 서버를 다시 시작하십시오.

관련 문제