공부?/국비 지원 일기장

프로젝트 - DB연동

무무요 2024. 9. 30. 00:54

 

여기 또한 실수를.. 그냥 실력이 몹시 부족하다.... 공부를 더 열심히 해야한다...

 

=======

 

1. 연결 테스트 DB 생성 (db서버에 해줘야 한다.)

grant all on *.* to 'testdb'@'%' identified by '1234';
// 1번째 왼쪽 별 = 내가 접속할수있는데이터베이스(와일드카드문자) 모든 데이터베이스에 접속허용
// 2번째 오른쪽 별 = 내가 접근할 테이블 모든 데이터베이스의 모든 테이블 접속허용
flush privileges;
// 설정 적용

 

2. tomcat에 테스트 파일 업로드

- home 디렉터리에 복사

mv /home/moo/mariadb_test.jsp /opt/tomcat/webapps/test/
// /home/ 뒤에 붙는건 계정이름

 

3. 톰캣 / 디렉터리 설정

vi /opt/tomcat/conf/server.xml
#/opt/tomcat/conf/server.xml <host name> // 안쪽에 추가
<Context path="" docBase="test" sessionCookiePath="/"/>

 

4. jsp 파일 수정

 

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>mariadb jdbc connect test</title>
</head>
<body>

<%
Connection conn = null;
String url = "jdbc:mariadb://localhost:3306/데이터베이스 이름"; 
//localhost = DB에 접속하기 위한 DB ip 주소, 만든 데이터베이스 이름 입력
// show databases; 안에 있는 데이터베이스 중에 하나를 넣는것
String id = "testdb";                     //MySQL에 접속을 위한 계정의 ID
String pwd = "1234";            //MySQL에 접속을 위한 계정의 암호
Class.forName("org.mariadb.jdbc.Driver");
conn = DriverManager.getConnection(url, id, pwd);
out.println("<h1>MariaDB DB 연결 성공</h1>");
%>

</body>

</html>

 

- 여기서 localhost에 들어가야 하는 ip는 DB의 IP주소인데 WAS의 IP주소를 넣어서 한번 안됐었다..

- 두번째로 데이터베이스 이름쪽이 약간 헷갈렸었다

 

5. 접속 확인

 

=======

틀린것

 

jsp 파일에서 경로와 ip주소 적는걸 실수했다.

- DB IP주소대신 WAS주소를 넣었고 데이터베이스 대신 계정이름을 넣음

- 방화벽이 꺼져있었던것 때문에 접속이 한번 안됐었다.

   - netstat -snpt 로 포트 확인

- 8080 포트가 닫혀있는걸 확인

방화벽을 끄고 다시 확인

systemctl stop ufw
systemctl disable ufw

포트가 열렸다.

 

DB도 똑같이 해준다.

 

DB연결 확인할때

- MySQL WorkBench 설치후 테스트 해보기

- 만약 DB연결이 된다면 WAS 설정 문제, 방화벽 포트 문제일것

 

=======