방학프로젝트 Shadower _1 C#원격 DB 연동
우선 프로젝트 문서 요구사항 이딴거 다 개줘버리고,
그냥 생각나는대로 만들기로 했다.
그 첫번째로 원격DB연동하기.
처음 계획이 프로그램이 실행되면 디비에서 금지 프로세스 목록을 가져오는것이기 때문에
디비연동을 해야한다.
그리고 작년 여름방학때 했던 프로젝트에서 원격디비 연동을 해봤기 때문에 금방끝나겠지 하고 시작했는데...
1. DB 사용자 권한 설정
mysql 을 root 권한으로 로그인을 해서 mysql user 테이블에 대해 알아보았다

Host 는 DB 접속을 허용할 호스트를 설정하는데 localhost 나 특정 ip로 지정해 줄수 있고 % 로 한다면 어디서든지 원격접속을 허용한다는 의미이다.
다음의 명령으로 특정 사용자에 대한 권한을 설정했다.

mysql> GRAN SELECT, INSERT, UPDATE, DELETE ON dev_db.* TO dev@"%" IDENTIFIED 'passwd';
중요하게 볼점은 굵은 글씨로 된부분이다.
첫번째 SELECT, INSERT, UPDATE, DELETE 의 부분은 말그대로 그 권한만을 준다는 것이다.
다르게 ALL PRIVILEGES 로 권한을 줄수도 있다.
두번째 dev_db.* 의 부분은 dev_db 라는 데이터베이스에만 접근 할수 있다는 것이다.
*.* 로 하게되면 모든 데이터베이스에 접근 가능하다
세번째 dev@"%" 의 부분은 데이터베이스 사용자와 호스트부분이다. 위에서 말했다시피 dev는 사용자명 그리고 % 로 했기때문에 어디서든지 접근이 가능하다
이렇게 권한을 주고 했으나 데이터베이스 접속은 실패.
(우선은 웹으로 접근이 가능한지 테스트 했다)
열심히 구글링을해서 그 해답을 알아냈는데
원인은 데이터베이스 설정에 있었다.
(당연한것 아닌가?!)
현재 테스트 서버는 내가 운영중인 nextcube 의 dev 계정이었다.
그리고 nextcube 서버의 db 는 iscert 서버 즉, web2 서버와 거의 일치했다.
(옵션등이 거의 일치하고 성능은 튜닝을 했다)
문제는 바로 skip-networking 이었다.
말하자면,
networking 을 스킵해서 사용은 안한다는 의미였다 이것을 주석처리 하고
mysql 다시 실행한다음 테스트를 하니 잘 연결이 되더라.
우선 이것으로 조금진행.
우선 프로젝트 문서 요구사항 이딴거 다 개줘버리고,
그냥 생각나는대로 만들기로 했다.
그 첫번째로 원격DB연동하기.
처음 계획이 프로그램이 실행되면 디비에서 금지 프로세스 목록을 가져오는것이기 때문에
디비연동을 해야한다.
그리고 작년 여름방학때 했던 프로젝트에서 원격디비 연동을 해봤기 때문에 금방끝나겠지 하고 시작했는데...
1. DB 사용자 권한 설정
mysql 을 root 권한으로 로그인을 해서 mysql user 테이블에 대해 알아보았다
Host 는 DB 접속을 허용할 호스트를 설정하는데 localhost 나 특정 ip로 지정해 줄수 있고 % 로 한다면 어디서든지 원격접속을 허용한다는 의미이다.
다음의 명령으로 특정 사용자에 대한 권한을 설정했다.
mysql> GRAN SELECT, INSERT, UPDATE, DELETE ON dev_db.* TO dev@"%" IDENTIFIED 'passwd';
중요하게 볼점은 굵은 글씨로 된부분이다.
첫번째 SELECT, INSERT, UPDATE, DELETE 의 부분은 말그대로 그 권한만을 준다는 것이다.
다르게 ALL PRIVILEGES 로 권한을 줄수도 있다.
두번째 dev_db.* 의 부분은 dev_db 라는 데이터베이스에만 접근 할수 있다는 것이다.
*.* 로 하게되면 모든 데이터베이스에 접근 가능하다
세번째 dev@"%" 의 부분은 데이터베이스 사용자와 호스트부분이다. 위에서 말했다시피 dev는 사용자명 그리고 % 로 했기때문에 어디서든지 접근이 가능하다
이렇게 권한을 주고 했으나 데이터베이스 접속은 실패.
(우선은 웹으로 접근이 가능한지 테스트 했다)
열심히 구글링을해서 그 해답을 알아냈는데
원인은 데이터베이스 설정에 있었다.
(당연한것 아닌가?!)
현재 테스트 서버는 내가 운영중인 nextcube 의 dev 계정이었다.
그리고 nextcube 서버의 db 는 iscert 서버 즉, web2 서버와 거의 일치했다.
(옵션등이 거의 일치하고 성능은 튜닝을 했다)
문제는 바로 skip-networking 이었다.
# The skip-networking option will no longer be set via debconf menu.
# You have to manually change it if you want networking i.e. the server
# listening on port 3306. The default is "disable" - for security reasons.
we have skip this in our case as we are doing both master and slave on same machine
말하자면,
networking 을 스킵해서 사용은 안한다는 의미였다 이것을 주석처리 하고
mysql 다시 실행한다음 테스트를 하니 잘 연결이 되더라.
우선 이것으로 조금진행.

'공부 > 0x01 C / C++' 카테고리의 다른 글
| 방학프로젝트 Shadower _4 Process 감추기(2) (0) | 2009/08/20 |
|---|---|
| 방학프로젝트 Shadower _4 Process 감추기 (0) | 2009/08/07 |
| 방학프로젝트 Shadower _3 C#Process 실행 감시 (0) | 2009/08/06 |
| 방학프로젝트 Shadower _2 C#원격 DB 연동2 (0) | 2009/08/06 |
| 방학프로젝트 Shadower _1 C#원격 DB 연동 (3) | 2009/08/05 |
| 방학프로젝트 Shadower (0) | 2009/07/21 |