[권선우]님이 남기신 글:
>mysql access 에러가 생깁니다.
>
>root 계정으로 zeroboard 라는 db를 생성해서 <제로보드>라는
게시판을 설치했습니다.
>그런데 설문게시판을 꾸미고 추출스킨을 이용하려는데 에러가
생깁니다.
>
>다른 곳에서도 질의를 했는데 답을 얻지 못했습니다.
>
>산이님 한번 봐주세요.
>
>산이님 책에서는 이런 메시지가 생기는 이유는 패스워드 없이
접속할 경우에 생긴다고 했습니다.
>
>아래의 php파일을 보면 분명히 패스워드를 넣고 db에
접속하는데 왜 이런 에러가 생기죠.
>
>
>Warning: Access denied for user: 'root@localhost' (Using password: YES) in
/home/html/vote/vote.php on line 18
>
===========>
디버깅하는 요령
<?
require 'dbconn.php';
if(!@mysql_connect($host_name,$user_name,$db_password))
{
echo '콘솔이나 터미널에서 다음을 입력해 보세요<BR>';
echo "mysql -h $host_name -u $uer_name -p$db_password";
} else echo 'OK';
?>
그리고 mysql로 접근하여 mysql.user와 mysql.db 테이블을
점검해봐야합니다.
mysql> select count(*) from mysql.user where user ='root' and host = 'localhost'
이렇게 쿼리를 전송했을 경우 count(*)가 최소한 1이상이어야
합니다.
마찬가지로 user = 'root' 대신 user = 'nobody'로 바꾸어
쿼리를 전송해봅니다.
위의 내용을 그대로 해보시고 해결되지 않으면
위의 결과를 포스팅해주세요.
참고로
(Using password: YES) : 맞든 틀리든지 암호를 사용하여 접근시도
(Using password: NO) : 함호없이 접근할 경우
>
>CREATE DATABASE zeroboard; 이렇게 db를 생성하고
>show databases; 로 db가 생성된 것을 확인했습니다.
>그래서 제로보드를 설치했습니다.
>
>그런데 설문 게시판 추출 스킨을 이용하려니 mysql 접속이
안된다니 저로선 알 수가 없습니다.
>도움 부탁합니다.
>
>아래는 vote.php를 브라우저에서 실행했을 때 생기는
에러메시지입니다.
>
>Warning: Access denied for user: 'root@localhost' (Using password: YES) in
/home/html/vote/vote.php on line 18
>
>Warning: MySQL Connection Failed: Access denied for user: 'root@localhost' (Using
password: YES) in /home/html/vote/vote.php on line 18
>
>Warning: Access denied for user: 'nobody@localhost' (Using password: NO) in
/home/html/vote/vote.php on line 19
>
>Warning: MySQL Connection Failed: Access denied for user: 'nobody@localhost' (Using
password: NO) in /home/html/vote/vote.php on line 19
>
>Warning: MySQL: A link to the server could not be established in
/home/html/vote/vote.php on line 19
>
>
>
>Warning: Access denied for user: 'nobody@localhost' (Using password: NO) in
/home/html/vote/vote.php on line 51
>
>Warning: MySQL Connection Failed: Access denied for user: 'nobody@localhost' (Using
password: NO) in /home/html/vote/vote.php on line 51
>
>Warning: MySQL: A link to the server could not be established in
/home/html/vote/vote.php on line 51
>Access denied for user: 'nobody@localhost' (Using password: NO)
>
>
>mysql의 db명과 계정, 패스워드 확인했는데 왜 위와 같은 에러
문구가 생기나요.
>
>제로보드 처음 설치시에 입력하는 내용을 dbconn.php 에 아래와
같이 동일하게 설정했습니다.
>
>
>*****dbconn.php의 내용***
>
><?
>$host_name = "localhost"; // 호스트 네임
>$user_name = "root"; // db 아이디
>$db_name = "zeroboard"; // db 네임
>$db_password = "패스워드";
// db 비번
>$zero_path = "/home/html/2002_bbs1"; // 제로보드의
위치
>?>
>
>
>****vote.php의 내용****
>
>
><?
>
>$filename=realpath(__FILE__);
>$config_dir=eregi_replace("vote.php","",$filename);
>require "$config_dir"."dbconn.php";
>$id = "school_survey_1"; //설문조사 보드이름
>$title_leg = "999"; //설문 제목 길이 지정하기
>$log_image = "/home/html/vote/img"; //이미지 경로
>
>// 여기까지만 지정해주시면 끝 ^^
>
>$connect = mysql_connect($host_name,$user_name,$db_password); //에러메시지
생기는 18번째 라인입니다.
>mysql_select_db($db_name); //에러메시지 생기는 19번째
라인입니다.
>
>echo"<STYLE TYPE='text/css'>
> A:link {color: black; text-decoration: none;}
> A:visited {color: black; text-decoration: none;}
> A:hover {color: red; text-decoration: none;}
> BODY,TABLE,TR,TD{font-size:12px;font-family:굴림,굴림;}
> </style>
> <script>
> function check_survey_submit()
> {
> var check=0;
> for(i=0;i<main_survey.sub_no.length;i++)
> {
> if(main_survey.sub_no[i].checked) {check=1;}
> }
> if(check<1) {alert('투표 선택을 하셔야 합니다.!');
return false;}
> return true;
> }
> </script>
>
><table align=center border=0 cellpadding=0 cellspacing=0 width=200>
> <tr>
><td width=200 colspan=3>
><img src=$log_image/"."box_top.gif></td>
></tr>
> <tr>
> <td width=14 rowspan=2
background=$log_image/"."box_left.gif>
> <p> </p>
> </td>
> <td width=173>
> <table align=center border=0 cellpadding=0 cellspacing=0>";
> $result=mysql_query("select * from zetyx_board_$id where prev_no=0 order
by arrangenum asc") or die(mysql_error()); //에러메시 생기는 51번째
라인입니다.
>
>for($i=0; $i < $data=mysql_fetch_array($result); $i++)
>{
> //제목 자르기
> $title_cut="$data[subject]";
> $title_leg2=strlen($title_cut);
> for($k=0; $k<$title_leg-1; $k++)
> {
> if(ord(substr($title_cut, $k, 1))>127) $k++;
> }
> if ($title_leg2 > $title_leg)
> {
> $title_cutt=substr($title_cut, 0, $k)."...";
> }
> else { //자른 값보다 작으면 원래대로
> $title_cutt=$title_cut;
> }
>
> if($i==0)
> {
> $no=$data[no];
> echo "
> <tr>
>
> <td width=173><p style=line-height:150%; margin-top:0;
margin-bottom:0;> $title_cutt</td>
> </tr>
> <tr>
> <td></td>
> </tr>
> <tr>
> <td></td>
> </tr>
> ";
> echo "<form method=post
action=$zero_path/"."apply_vote.php name=main_survey onsubmit='return
check_survey_submit()' target=_blank>
> <input type=hidden name=id value=$id>
> <input type=hidden name=no value=$no>";
> }else{
> $sub_no=$no+$i; //위에서 정해준 no에 현재 i의 값을 더해서
sub_no에 넣어줌.
> echo "
> <tr>
> <td width=173><input type=radio name=sub_no
value=$sub_no onfocus=blur()> $title_cutt </td>
>
> </tr>
> <tr>
> <td colspan=2></td>
> </tr>";
> }
>}//for문
>
>echo "
></table>
> </td>
> <td width=13 rowspan=2
background=$log_image/"."box_right.gif>
>
> <p> </p>
> </td>
> </tr>
> <tr>
> <td width=173>
> <table align=center>
><tr>
><td colspan=2 height=36 ><p align=center>
><input type='image' style='cursor:hand' src=$log_image/"."vote1.gif
onfocus=blur() target=_blank> <a
href=$zero_path/"."view.php?id=$id&no=$no style='cursor:hand'
onfocus=blur()><img src=$log_image/"."vote2.gif
border=0></a>
></td>
></tr>
></form>
></table>
> </td>
> </tr>
> <tr>
> <td width=200 colspan=3>
> <img src=$log_image/"."box_bottom.gif>
> </td>
> </tr>
></table>";
>mysql_close();
>?>
>
>
>
>
>
>vote.php파일은 위의 dbconn.php를 참조해서 설문게시판을 내용을
추출해서 보여주는 파일입니다.
>
>아래는 테스트하고 있는 주소입니다.
>
>http://deogjeong.es.kr/2002_bbs1/zboard.php?id=school_survey_1
>위의 설문게시판을
>
>아래에서 추출해서 이용하고자 합니다만 자꾸 에러가
납니다.
>http://deogjeong.es.kr/vote/vote.php
>
>
>
>mysql에 접속해서
>show databases; 명령으로 확인하면
>분명히 zeroboard라는 db가 생성되어 있습니다.
>제로보드 설치가 가능했던 것도 위의 db에 접근이 가능하다는
것을 반증한는 것이 아닙니까?
>
>왜 이런 메시지가 생길까요?
>제로보드홈에 질의했는데 답을 얻지 못했습니다.
>그래서 이곳에 질의하는 것입니다.
>산이님은 해결책을 말씀해 주신다면 고맙겠습니다.
========================================
|