안녕하세요.
저는 지금 jdbc를 이용해서 bbs를 만들어 볼까 생각중에 있습니다.
그래서 테스트 결과 local에서는 별 문제업이 access가 가능한데
원격으로 접속 하려니 접속 할수가 없군요.
postgres에서는 pg_hba.conf에서 원격접속하려는 ip를 셋팅해주니 access하여 결과값을 가져올수 있던데
mysql에서는 그게 잘 안되네요.
메뉴얼에서는 root로는 local로 밖에 안된다더군요. 역시 테스트 결과 local에서는 되는데 원격으로 접속해서는 안되더군요.
원격으로 접속하기 위해서 grant 명령을 주었지요.
[root@ns bin]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \.
Your MySQL connection id is 27 to server version: 3.22.22
Type 'help' for help.
mysql> grant all privileges on *.* to choikangseop@"%"
-> identified by 'kkk' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql>
이렇게 정상적으로 권한이 주어졌을 터인데
위의 grant 명령중
*.* 는 모든 데이타베이스에 접근이 가능하도록 하는것이고
choikangseop@"%" 는 앞부분은 데이타베이스사용자를 말하는것이고
뒤의 "%"부분은 모든host에서 접근이 가능하게 하는것 아닌가요?
그리고 'kkk' 는 접근하기 위한 패스워드아닌가요?
mysql 에서 local에서는 이렇게 접속하면 되었습니다.
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/java?user=root=";
Connection con = DriverManager.getConnection(url);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from bbs");
postgres에서는 이렇게 접속하니 원격으로 값을 얻을수 있었습니다. 물론 pg_hba.conf에 접속하는 ip를 등록하였지요.
Properties p = new Properties();p.put("user","monty");
p.put("password","kkk");
String url = "jdbc:postgresql://210.101.62.201:5432/java"; // postgres
String driver = "postgresql.Driver";
Class.forName(driver);
Connection con = DriverManager.getConnection(url,p);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from bbs");
mysql에서도 이런식으로 접속을 하였답니다. 그러니 접속이 안되더군요.
Properties p = new Properties();
p.put("user","choikangseop");
p.put("password","kkk");
String url = "jdbc:mysql://210.101.62.201:3306/java"; // mysql
String driver = "org.git.mm.mysql.Driver";
Class.forName(driver);
Connection con = DriverManager.getConnection(url,p);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from bbs");
참고로 위의 테스트는 시스템의 계정과 데이타베이스의 계정은 별개이기 때문에 시스템 계정을 사용하지 않고
데이타베이스의 계정을 사용하였습니다.
만약 소스를 잘 모르시더라도
질문의 내용을 요약한다면
부산에있는 A라는 데이타베이스에
서울에 있는 B라는 컴퓨터로 A데이타베이스의 AA테이블을 select해서 가져오도록 하기위해서
권한설정을 어떻게 하는지 설명좀 해주세요.
|