php에서 mysql 접속이 안되는 에러입니다.
제로보드 설치때문에 php +아파치 연동은 제대로 됬고
mysql도 설치가 잘된듯합니다.
그런데 php,에서 mysql접속시 접속이 안됩니다.
에러나는부분은
echo "2:::::"; 다음부분인
$connect=mysql_connect($targethost, $username, $passwd) or die("mysql server not connect");
입니다 그런데 실제로 mysql이란 db에 user 정보를 보면
haha란 유저도 있고 이 유저로 mysql접속도 되고 합니다.
그리고 에러메시지는 다음과 같습니다.
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /home/httpd/html/dbtest.php on line 10
mysql server not connect
어떤부분이 잘못됬는지 그리고 어떤부분을 확인해봐야 할까요.
조언부탁드리겠습니다.
<html>
<head>
<?php
$username ="haha";
$passwd="haha";
echo "1:::::";
$target="localhost";
$initdb="mysql";
echo "2:::::";
$connect=mysql_connect($targethost, $username, $passwd) or die("mysql server not connect");
mysql_select_db($initdb,$connect);
$qry="select * from user";
$result=mysql_query($qry,$connect);
$total=mysql_affected_rows();
for($i=0; $i<$total; $i++)
{
$row=mysql_fetch_array($result);
echo "
<tr><td>$row[0] <td>$row[1] ";
}
?>
</head>
</html>
$target="localhost"; $connect=mysql_
$target="localhost";
$connect=mysql_connect($targethost, $username, $passwd) or die("mysql server not connect");
$targethost가 잘못된 거 아닌가요....
이런 멍청한놈 하면서 바꿔봤는데도 같네요..^^;;$target=
이런 멍청한놈 하면서 바꿔봤는데도 같네요..^^;;
$target="localhost"; 를 $targethost="localhost"; 으로 바꿨는데 같은 에러네요..음..
php 도 mysql도 처음접하니 참
괜히 인트라넷만들자고 했나봅니다..-_-;;
mysql 서버와 클라이언트간에 버전이 안맞는 문제인듯합니다.db
mysql 서버와 클라이언트간에 버전이 안맞는 문제인듯합니다.
db서버와 웹서버가 같은 기계가 아닌가보네요
각각의 버전을 확인해보세요
고치신 것은 맞습니다..targethost가 로컬인걸로 봐서는 웹
고치신 것은 맞습니다..
targethost가 로컬인걸로 봐서는 웹서버와 디비서버가
같은 서버 인거 같은데
윗분 말씀대로 프로토콜이 맞지 않아 그런거 같네요
mysql 서버와 클라이언트의 버전을 확인해 보심이..
mysql클라이언트 버전은 어떻게 확인해야하는거죠?콘솔에서 ./m
mysql클라이언트 버전은 어떻게 확인해야하는거죠?
콘솔에서 ./mysql -u jinwan -p로 하면 접속이 됩니다.
그럼 php에서 이용하는 클라이언트가 따로 있는건지
이걸 확인할려면 어떻게 해야하나요?
./mysqladmin --version하면
./mysqladmin Ver 8.40 Distrib 5.0.0-alpha, for pc-linux on i686
위와 같이 나옵니다.
그리고
target을 localhost 에서 ip 111.111.111.1 로 변경하니
Warning: mysql_connect(): Host '111.111.111.1' is not allowed to connect to this MySQL server
이런 에러가 나오네요..이 에러는 initdb(mysql)
user테이블에 있는
host에 111.111.111.1이란 아이피가 등록이 안되어있어서 나오
는거 같은데요. 그렇다면 디비연결자체는 문제가 없는거 아닌가요?
[quote="smile_kim"]mysql클라이언트 버전은 어떻게 확인
<?php phpinfo(); ?>
로 확인 하시고요.
--with-mysql=/usr
로 다시 컴파일 해 주세요.
--with-mysql=/usr는 Redhat 에서 RPM으로 설치한
--with-mysql=/usr
는 Redhat 에서 RPM으로 설치한 경우입니다.
MySQL 디렉토리를 지정해 주세요.
mysql 5.0 을 까셨다면반드시 mysql4.1 부터 적용되는
mysql 5.0 을 까셨다면
반드시 mysql4.1 부터 적용되는 php 의 mysql api 인
'--with-mysqli = /mysql/bin/conf file' 로 php 를 컴파일을 하셔야 합니다.
다행이 제가 4.1.7 을 써본 바로는 기존 mysql api 도 다 먹히더군요.
꼭 확인해보십시오.
mysql4.1 부터 암호의 bit 수가 늘어나고 ( 128bit 로 들었습니다 )
따라서 mysql 의 password 방식이 바뀌어서 기존 api 로는 접속이 안되는 사태가 발생합니다.
Neogeo - Future is Now.
PHP와 연동시 아래와 같은 오류가 발생할 수 있습니다.ERROR
PHP와 연동시 아래와 같은 오류가 발생할 수 있습니다.
ERROR 1249: Client does
not support authentication protocol requested by server
-----------------------------------------------------
mysql 4.1 알파에서 password() 암호화가 변경되었네요. 아래와 같이 해야 합니다.
그래야 윈도우 아파치, php 가 연동이 됩니다.
root 사용자의 패스워드를 kswow 로 변경하는 것입니다.
UPDATE mysql.user
SET password=OLD_PASSWORD('kswow')
WHERE user='root'
AND host='localhost';
FLUSH PRIVILEGES;
정상적으로 업그레이드 했다면 mysql_fix_privilege_ta
정상적으로 업그레이드 했다면
mysql_fix_privilege_tables
을 실행 했을 것이고 그러면 괜찮지 않나요?
댓글 달기