2011-10-22 2 views
0

이 연결이 로컬 호스트이상한 행동은

$Connection = mysql_connect("localhost","root",""); 

에서 MySQL 서버에 생성하지만 MySQL은 좀 말도 안되는 이름 & 암호를 사용하여 연결을 만들 경우에도 사용자 이름과 암호를 무시하는 것 같다 방법입니다 :

$Connection = mysql_connect("localhost","nonsense-username",""); 

두 경우 모두 $ connection을 "resource (39) type (mysql link)"로 제공합니다. 그리고 이것은 암호가 비어있을 때만 발생합니다. 암호가 공백 일 때 사용자 이름을 수락하는 것이 MySQL의 기본 동작입니까?

그러나 '넌센스 - 사용자 이름'이 주어지면 $ Connection은 'false'로 간주됩니다. 뭐가 잘못 됐니?

답변

2

사용자, 권한 또는 이와 유사한 것을 설정하지 않고 MySQL 서버를 자신의 컴퓨터에 설치했다고 가정합니다. 그렇다면 SQL 안전 모드가 원인 일 수 있습니다. php.ini 파일에서 sql.safe_mode가 1로 설정되면 PHP는 mysql_connect()에 전달한 모든 인수를 기본값으로 대체합니다. 그것은 확실히이 행동을 설명 할 것입니다. phpinfo()를보고 그 경우인지보십시오.

+0

이상하게도 'php.ini'의 sql.safe_mode가 꺼져 있습니다. – jondinham

+1

비밀번호가 비어있는 경우에만 내 대답에 설명되어 있지 않습니다. AFAIK는 암호가 공백 인 경우 모든 연결을 허용하는 기본 MySQL 동작이 아닙니다. 당신이 생각할 수있는 * 말도 안되는 사용자 이름에 대해이 작업이 가능합니까? 빈 사용자 이름은? – toon81

+0

예, 'root'사용자의 암호가 비어 있으면 mysql은 영숫자 사용자 이름을 모두 허용합니다. mysql이 나를 미친 듯이 몰아 넣고있다. – jondinham

0

php-mysql을 설치 한 후 웹 서버를 다시 시작하지 않은 것으로 보입니다. 작동해야하는 웹 서버를 다시 시작하십시오. 2 시간 동안 디버깅을하고 간단한 솔루션을 다시 시작했습니다.