2009-11-08 5 views
3

좋습니다. 오랜 질문입니다.PHP를 통해 Bitnami 램프 스택을 사용하여 mysql에 연결할 수 없습니다

내 대학 계정에서 뭔가를 실행하려고합니다. 우리는 웹 공간으로 우리가 원하는 것을 호스트 할 수있는 public_html 폴더를 가지고 있습니다.

저는 Bitnami 램프 스택을 public_html 폴더에 설치했습니다 (아마 보안상의 이유로 가장 좋은 아이디어는 아니지만이 응용 프로그램을 며칠 동안 테스트하고 풀어 볼 것입니다. 너무 오래 걸릴 수 있습니다.) 그리고 호스팅하고 싶은 사이트는 http : // (단일 주소)/(내 계정 이름)/public_html/lamp/apache2/htdocs/.

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

나는 다음과 같은 코드를 사용하여 데이터베이스에 연결하고 있습니다 :

,443을 (등) 그러나, 데이타베이스에 연결 코드의 특정 부분은 나에게 다음과 같은 경고를 제공합니다

여기서 dbhost는 'localhost'입니다.

/var/run/mysqld/mysqld.sock을 참조하고 있기 때문에 - 설치 한 램프 스택의 mysql이 my.cnf에 다음과 같은 내용을 포함하고 있다는 것을 분명히 의미합니다.

[mysqladmin] 
user=root 

[mysqld] 
basedir=(my account folder)/public_html/lamp/mysql 
datadir=(my account folder)/public_html/lamp/mysql/data 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 
tmpdir=(my account folder)/public_html/lamp/mysql/tmp 

[mysqld_safe] 
mysqld=mysqld.bin 

[client] 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 

[manager] 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 
pid-file=(my account folder)/public_html/lamp/mysql/tmp/manager.pid 
default-mysqld-path=(my account folder)/public_html/lamp/mysql/bin/mysqld.bin 

내 질문에, 누구든지 정확한 소켓에 연결하는 방법을 알고 있습니까? 또한, var/run/mysqld/mysqld.sock은 전혀 존재하지 않으며, 분명히 그것을 만들 권한이 없다. (내 목적을 달성하는 방법을 알지 못한다.)

나는 어제부터 나를 괴롭 히고 있었다. 어떤 도움이라도 대단히 감사하겠습니다.

건배!

답변

1

소켓 파일에 $ CFG-> dbhost 점을함으로써 localhost 대신 (당신이 3 예 번호의 기능 expample을 볼 수 있어야합니다) 당신은 mysql_connect를 사용하여 my.cnf 파일에 정의 된 소켓을 지정해야 할 수도 있습니다

$CFG->dbhost = ':(my account folder)/public_html/lamp/mysql/tmp/mysql.sock'; 
$link = mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass); 

작동하는지 확인하십시오.

당신은 또한 소켓 파일이 실제로 그 위치 "(내 계정 폴더) /public_html/lamp/mysql/tmp/mysql.sock"

에서 MySQL의 서비스에 의해 생성되고 있는지 확인해야합니다 충고의 또 다른 단어

편집 :

우리는 당신의 MySQL의 양말 파일의 경로가 유효하고 파일이 있었던 것으로 나타나는 생성되어 있음을 확인하는 데 필요한

.

또한 진단에 도움이되는 또 다른 좋은 단계가 될 수있는 명령 줄에서 수동으로 mysql 서버에 연결할 수 있는지 확인할 수 있습니까?

mysql --socket=<my account folder>/public_html/lamp/mysql/tmp/mysql.sock -u <username> -p 

편집 2 : 당신은 당신이 위의 예제에서 폴더를 계정 대체 할 때 당신이 당신의 파일의 전체 경로를 사용하는

그냥 빨리 확인.

/home/<username>/public_html/lamp/mysql/tmp/mysql.sock 
+0

파일이 내 mysql 서비스에 의해 생성되었는지 어떻게 확인합니까? 나는 그것이 bitnami 램프 스택을 설치 한 후에 만들어 졌다고 추정하고 있습니다. 또한 예제 # 3을 시도했습니다. 그것은 나에게 같은 경고를 주었고 mysql.sock의 위치를 ​​두 번 확인했다. 그리고 분명히 거기에있다. 나는 그것에 대한 완전한 접근을 허용했다. 다시 감사합니다. – MikiRei

+0

예. "/ home/"과 "/ home/"을 사용하면 올바르게 리디렉션되지 않는 경우를 대비하여 "/ home/"및 전체 경로 파일을 시도했습니다. – MikiRei

+0

명령 줄을 통해 mysql 서버에 연결할 수 있습니까? – houmam