2009-12-22 1 views
0

30 초마다 데이터베이스에 특정 XML 정보를 업데이트하는 스크립트를 PHP로 작성하고 있습니다. (나는 다른 스크립팅 언어를 사용할 수 없으며 PHP와 어쨌든 쉽게 작업 할 수 있습니다.)PHP에서 MySQL 연결이 사라짐

그러나이 PHP 스크립트를 몇 분 동안 실행할 수 있기 때문에 mysql 데이터베이스가 떨어져 나가는 경향이 있습니다. 많이.

그래서 링크 식별자를 사용하기 시작했습니다.
그러나 여러 식별자를 만들면 다른 식별자가 다시 떨어져 버립니다. 이제 내 질문에

function get_db() {

require 'config.php'; // Containing passwords 

$mydb = mysql_connect($db_ip,$db_user,$db_pass) or die('<br>MySQL Error get_db() function: ' . mysql_error() . "</b>\n"); 

mysql_select_db($db_name, $mydb) or die('<br>MySQL Error get_db() function (Kan databank niet benaderen): ' . mysql_error()); 

return $mydb; 

}

: 규모에

  • 그래서 나는이 기능을 사용하여, 나는 쿼리를 수행하는 것마다 새로운 DB 연결을 만들 거라고 생각 1에서 10까지, 얼마나 나쁜 생각입니까?

  • 심지어이 기능을 사용하더라도 때때로 사라진 서버에 대해 불평합니다.
    MySQL 서버가 사라졌습니다.
    무엇을 제공합니까? 그리고이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
+0

MySQL 서버의 "wait_timeout"시간이 매우 짧거나 누군가 서버를 잘못 사용하고있는 것처럼 서버 문제와 유사합니다. 하지만 MySQL 서버는 "없어져서는 안되며"기본 시간은 8 시간이므로, 조사를 시작합니다 :) –

+0

"wait timeout"변수가 "3,600"으로 설정되어 있습니다. 이들은 초입니까? 그리고 한 시간 동안 그렇게 서 있습니까? 저는 hostgator에게 그들이하는 일을 물어봐야 할 것 같습니다. – skerit

+0

mysql 로그를 확인하십시오. 내 경험상, mysql 연결이 끊어지는 것은 대개 mysql 서버가 충돌하고 다시 시작하는 것입니다. 가능한 경우 피해야 할 것이 있습니다. 더 큰 계획에서 모든 쿼리에 대해 새로운 연결을 만드는 것은 비효율적이지만 30 초에 한 번만 수행하는 경우 실제로 그렇게 나쁘지는 않습니다. –

답변

1

창의적인 대안에 대한 명성이 있지만 서버 관리자에게 연결이 끊어진 이유를 말해야합니다. 이것은 정상적인 동작처럼 들리지 않습니다.

+0

아, 그게 정상적인 줄 알았는데 (내가 의도하지 않은 것을 PHP로 사용하고 있었다) – skerit

1

이 스크립트가 완전히 내부 스크립트 인 경우 주요 문제는 표시되지 않습니다. 일반적으로 신뢰할 수없는 사용자가 오류 메시지를 볼 수 있도록 허용하는 것은 좋지 않습니다.

MySQL과 같은 소리는 서버 문제입니다. 서버 트래픽에 따라 데이터베이스가 수용 할 수있는 연결 수에 제한이있을 수 있습니다.