[설치 환경]
- OS : Debian GNU/Linux 10 (buster)
- java : openjdk version "11.0.14"
- Tomcat 10.0.17
- muysql 5.7
- mysql connector
Tomcat 설정
1. jsp 파일로 연동
mysql jdbc driver 다운로드 및 설치
mysql jdbc driver 파일을 다운로드하고 압축을 해제하는 예시를 설명한다.
mysql jdbc driver 파일을 다운로드한다. 파일 경로는 변경될 수 있으니, https://downloads.mysql.com/archives/c-j/ 페이지에서 다운로드 경로를 확인하고 본인이 다운로드 하려는 MySQL Product 버전과 OS 버전에 맞는 jdbc 드라이버를 다운로드한다.
본 문서에서는 debian Linux 10 용 mysql connector 8.0.28 버전을 다운로드했다.
wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java_8.0.28-1debian10_all.deb
아래는 mysql jdbc Driver 파일(mysql-connector-java_8.0.28-1debian10_all.deb)을 mysql_jdbc 디렉토리에 압축해제하는 명령어이다.
dpkg -x mysql-connector-java_8.0.28-1debian10_all.deb mysql_jdbc
압축을 해제하면 mysql_jdbc/usr/share/java/ 디렉토리 밑에 mysql-connector-java-8.0.28.jar 파일이 생기는데 이 파일을
tomcat의 lib 폴더로 이동한다. 파일권한을 tocat user로 변경해 준다.
## 파일 이동
sudo mv mysql-connector-java-8.0.28.jar /opt/tomcat/lib
## 파일소유 변경
sudo chown tomcat:tomcat /opt/tomcat/lib/mysql-connector-java-8.0.28.jar
Tomcat 실행
# systemctl start tomcat
접속확인
/opt/tomcat/webapps/ROOT 디렉토리에 아래 내용으로 mysql.jsp 파일을 생성한다.
아래 내용 중 mysql_server_ip, dba_name, username, password 부분은 각자의 DB 환경에 맞게 수정한다.
<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=utf-8" %>
<%
String DB_URL = "jdbc:mysql://mysql_server_ip/db_name";
String DB_USER = "username";
String DB_PASSWORD= "password";
Connection conn;
Statement stmt;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
stmt = conn.createStatement();
conn.close();
out.println("MySQL Connection Success!");
}
catch(Exception e){
out.println(e);
}
%>
브라우저에 tomcat이 설치된 서버의 ip와 port 그리고 위에서 작성한 jsp 파일명을 입력한다.
예시) http://127.0.0.1/mysql.jsp
" MySQL Connection Success!" 와 같은 메시지가 브라우저 화면에 출력된다.
2. 환경파일 설정
tomcat 과 mysql 을 connnection pool 로 연결하는 방법이다. tomcat lib 디렉토리에 mysql jdbc 드라이버가 있어야 한다.
없을 경우 위에서 설명한 대로 다운로드 후 jdbc 드라이버를 lib 디렉토리 하위에 이동 또는 복사한다.
mysql DB 접속 설정을 위해 context.xml 파일과 web.xml 파일에 정의해 준다.
1) context.xml 파일에 DB 접속 정보를 입력한다.
sudo vi /opt/tomcat/conf/context.xml
context.xml 파일에 아래 내용을 입력한다.
<Context>
...
<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
username="<username>"
password="<password>"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://mysql_ip:3306/db_name"
maxActive="15"
maxIdle="3"/>
...
</Context>
- username: MySQL 계정 이름
- password: MySQL 계정 비밀번호
- url: "jdbc:mysql://mysql_ip:3306/db_name"
- db_name: DB이름
JSP에서 테스트 코드 작성
/opt/tomcat/webapps/ROOT 디렉토리에 아래 내용으로 mysql_dbcp.jsp 파일을 생성한다.
아래 내용 중 comp/env/jdbc/mysql 에서 jdbc/mysql 부분은 위의 context.xml 파일에서 정의한 resource name 이다.
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import = "java.sql.*"%>
<%@ page import = "javax.sql.*"%>
<%@ page import = "javax.naming.*"%>
<%
Connection conn=null;
Context init = new InitialContext();
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/mysql");
conn = ds.getConnection();
out.println(conn);
conn.close();
%>
아래 화면처럼 출력되면 db connection pool 설정이 정상적으로 작동한 것이다.
1907371254, URL=jdbc:mysql://10.0.0.5:3306/mysql, MySQL Connector/J