산이님 고맙습니다.
db억세스 오류가 생기는 것은 산이님의 말씀대로 특수문자$가
문제였습니다.
$db_password = "test#$12"; // db 비번
위의 것을
다음과 같이 싱글쿼터로 변수값을 설정하거나
$db_password = 'test#$12'; // db 비번
또는 특수문자를 사용할 수 있도록 역슬래시(\)를 사용하여
$db_password = "test#\$12"; // db 비번
이렇게 설정하니 됩니다.
마찬가지로 mysql 접속시
-pPassWord 옵션을 쓸 때 접속 거부가 생기는 것도 같은
이유더군요.
mssql>mysql -u root -ptest#$12;
접속에러가 생깁니다.
그러나 다음과 같이 \를 붙이면 됩니다.
mysql>mysql -u root -ptest#\$12;
정상 접속화면
이 문제를 해결해서 참 후련합니다.한동안
고생했거든요.
산이님의 친절한 도움이 아니었다면 아마 해결하지 못했을
것입니다.
정말 고맙습니다.
또 궁금한 점이 있으면 문의하도록 하겠습니다.
그래도 괜찮죠?
안녕히계세요.
[권선우]님이 남기신 글:
>산이님의 말씀대로 해 보았습니다.
>자세한 것은 메일로 보냈습니다.
>말씀대로 하니 패스워드가 나타나내요.
>이 게시판에는 비밀글 기능이 없기에 부득이 메일로
보내씁니다.
>양해해 주시고요. 메일 한 번 살펴주세요.
>안녕히 계세요.
>
>
>[산이]님이 남기신 글:
>
>>[권선우]님이 남기신 글:
>>
>>>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에 접근이
가능하다는 것을 반증한는 것이 아닙니까?
>>>
>>>왜 이런 메시지가 생길까요?
>>>제로보드홈에
질의했는데 답을 얻지 못했습니다.
>>>그래서 이곳에 질의하는 것입니다.
>>>산이님은 해결책을 말씀해 주신다면 고맙겠습니다.
>>
>>========================================
>
>========================================
========================================
|