묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
linux에서 mysql에 디비만들었는데 제로보드가 접속이 안되여..
2002.12.03 01:41
mysql에 디비를 만들었습니다..
그런데 밖에서 접속은되는데 제로보드만 깔면 연결을 할수 가 없다고 나옵니다.
더 이상한것은 루트로 설치하고, 비밀번호도 루트, 디비이름을 계정으로 주면 제로보드가 깔린다는 것입니다..
한마디로
localhost --->host이름
test1 ----->디비사용자계정
test1 ------>디비비밀번호
testdb ------>디비명
이렇게 하면 안되거든요 디비연결이 안된다고 나오구요..
localhost --->host이름
root----->디비사용자계정
rootpass------>디비비밀번호
testdb ------>디비명
이렇게 하면 연결이 된다고 나오고 있어여..흑흑
이 사태를 어찌 해결해야 하나여???
자기 계정으로 접속하면 sql접속은 되는데 제로보드깔때면 디비접속할수 없다고 나오니..환장하것어여..디비만드는것은 강의란을 보고 했습니다..
아시눈분 답변좀 부탁합니다..
참고로 디비는 강의란에 있는 이것으로 만들었습니다..
[설정]
사용자 아디 : pai
사용자 비번 : pai2002
사용자 디비이름 : paidb
mysql> create database paidb;
Query OK, 1 row affected (0.01 sec)
확인을 해보자!
mysql> show databases;
+-----------+
| Database |
+-----------+
| mysql |
| test |
| paidb |
+-----------+
3 rows in set (0.00 sec)
리눅스의 경우 디폴트로 설치한 경우 /usr/local/mysql/var/paidb 이런 식으로 디렉토리가 생성되는것 같다. 이 디렉토리가 데이타 베이스 공간으로 이용될 곳이다.
이러면 다 되는가? 아니다.
paidb 라는 집만 지었을뿐 문패도 없고 대문열쇠도 없는 집만 있는 셈이다.
user용 DB와 mysql 관리테이블과의 Link, 사용자등록 및 각각의 권한설정이 이루어져야 한다. 이것이 바로 실제적인 분양이 되는 셈이다.
자 이제 생성된 데이타베이스와 데이타베이스 관리및 엑세스 권한등을 정의하고 있는 mysql 상의 db, user 테이블에 방금 생성된 paidb Database 내용을 정의 하자.
mysql> insert into db [Enter]
-> values ('%','paidb','pai', [Enter]
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') [Enter]
-> ; [Enter]
Query OK, 1 row affected (0.01 sec)
위 4줄을 모두 한줄로 붙여서 써도 결과는 마찬가지이지만 보기좋게~ ^^
자 이제 paidb 이라는 db 사용자에 대한 등록을 할 차례이다.
mysql> insert into user [Enter]
-> (host,user,password) [Enter]
-> values ('localhost','pai',password('pai2002')) [Enter]
-> ; [Enter]
Query OK, 1 row affected (0.00 sec)
db 테이블과 user 테이블에 사용자를 등록시키는 방법이 조금 차이가 나는걸 볼수가 있다. root의 수고를 최소화 하기위해 기본설정값(N)을 빼고 설정을 하게 되면 아무래도 수월하기때문이다. 자세한건 자세한 문건을 보길...ㅠㅠ
___________________________________________________________________
중요한 tip......
-------------------------------------------------------------------
user 테이블에 사용자를 insert, update 한 경우 MySQL을 꼭 재기동시켜 주어야만 한다. 명령은 다음과 같다.
[shell]# /usr/local/mysql/bin/myaqladmin -u root -p reload
이 명령은 user 테이블에서 사용자 정보를 다시 읽어서 MySQL 을 다시 실행시켜준다.
-------------------------------------------------------------------
위의 과정을 거치게 되면 비로소 pai라는 이용자는 텔넷접속후에
[shell]$ /usr/local/mysql/bin/mysql -u pai -p paidb [Enter]
라는 명령으로 자신의 MySQL 디비에 접속하여 작업을 할수 있게된다.
그런데 밖에서 접속은되는데 제로보드만 깔면 연결을 할수 가 없다고 나옵니다.
더 이상한것은 루트로 설치하고, 비밀번호도 루트, 디비이름을 계정으로 주면 제로보드가 깔린다는 것입니다..
한마디로
localhost --->host이름
test1 ----->디비사용자계정
test1 ------>디비비밀번호
testdb ------>디비명
이렇게 하면 안되거든요 디비연결이 안된다고 나오구요..
localhost --->host이름
root----->디비사용자계정
rootpass------>디비비밀번호
testdb ------>디비명
이렇게 하면 연결이 된다고 나오고 있어여..흑흑
이 사태를 어찌 해결해야 하나여???
자기 계정으로 접속하면 sql접속은 되는데 제로보드깔때면 디비접속할수 없다고 나오니..환장하것어여..디비만드는것은 강의란을 보고 했습니다..
아시눈분 답변좀 부탁합니다..
참고로 디비는 강의란에 있는 이것으로 만들었습니다..
[설정]
사용자 아디 : pai
사용자 비번 : pai2002
사용자 디비이름 : paidb
mysql> create database paidb;
Query OK, 1 row affected (0.01 sec)
확인을 해보자!
mysql> show databases;
+-----------+
| Database |
+-----------+
| mysql |
| test |
| paidb |
+-----------+
3 rows in set (0.00 sec)
리눅스의 경우 디폴트로 설치한 경우 /usr/local/mysql/var/paidb 이런 식으로 디렉토리가 생성되는것 같다. 이 디렉토리가 데이타 베이스 공간으로 이용될 곳이다.
이러면 다 되는가? 아니다.
paidb 라는 집만 지었을뿐 문패도 없고 대문열쇠도 없는 집만 있는 셈이다.
user용 DB와 mysql 관리테이블과의 Link, 사용자등록 및 각각의 권한설정이 이루어져야 한다. 이것이 바로 실제적인 분양이 되는 셈이다.
자 이제 생성된 데이타베이스와 데이타베이스 관리및 엑세스 권한등을 정의하고 있는 mysql 상의 db, user 테이블에 방금 생성된 paidb Database 내용을 정의 하자.
mysql> insert into db [Enter]
-> values ('%','paidb','pai', [Enter]
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') [Enter]
-> ; [Enter]
Query OK, 1 row affected (0.01 sec)
위 4줄을 모두 한줄로 붙여서 써도 결과는 마찬가지이지만 보기좋게~ ^^
자 이제 paidb 이라는 db 사용자에 대한 등록을 할 차례이다.
mysql> insert into user [Enter]
-> (host,user,password) [Enter]
-> values ('localhost','pai',password('pai2002')) [Enter]
-> ; [Enter]
Query OK, 1 row affected (0.00 sec)
db 테이블과 user 테이블에 사용자를 등록시키는 방법이 조금 차이가 나는걸 볼수가 있다. root의 수고를 최소화 하기위해 기본설정값(N)을 빼고 설정을 하게 되면 아무래도 수월하기때문이다. 자세한건 자세한 문건을 보길...ㅠㅠ
___________________________________________________________________
중요한 tip......
-------------------------------------------------------------------
user 테이블에 사용자를 insert, update 한 경우 MySQL을 꼭 재기동시켜 주어야만 한다. 명령은 다음과 같다.
[shell]# /usr/local/mysql/bin/myaqladmin -u root -p reload
이 명령은 user 테이블에서 사용자 정보를 다시 읽어서 MySQL 을 다시 실행시켜준다.
-------------------------------------------------------------------
위의 과정을 거치게 되면 비로소 pai라는 이용자는 텔넷접속후에
[shell]$ /usr/local/mysql/bin/mysql -u pai -p paidb [Enter]
라는 명령으로 자신의 MySQL 디비에 접속하여 작업을 할수 있게된다.