SaevOps
[CentOS7] Tomcat MariaDB 연동 본문
본 게시물은 톰캣, 마리아 디비가 설치되어 있는 환경에서 시작됩니다.
설치하지 않으셨다면 아래 링크를 통해 설치하고 오시길 바랍니다!
톰캣 설치 : [CentOS7] MariaDB설치 yum install (tistory.com)
[CentOS7] MariaDB설치 yum install
시작하기 앞서 본 게시글은 VirtualBox로 CentOS7 환경에서 만들어졌음을 알립니다. VirtualBox _ CentOS7 가상머신환경으로 시작합니다. Window환경) putty를 사용하면 복사 붙여넣기 하기 용이합니다. ( 보통
shyen.tistory.com
마리아 디비 설치 : [CentOS7] MariaDB설치 yum install (tistory.com)
[CentOS7] MariaDB설치 yum install
시작하기 앞서 본 게시글은 VirtualBox로 CentOS7 환경에서 만들어졌음을 알립니다. VirtualBox _ CentOS7 가상머신환경으로 시작합니다. Window환경) putty를 사용하면 복사 붙여넣기 하기 용이합니다. ( 보통
shyen.tistory.com
1) 마리아디비 커넥터 설치
cd /home
wget https://dlm.mariadb.com/1965742/Connectors/java/connector-java-2.7.5/mariadb-java-client-2.7.5.jar
cp mariadb-java-client-2.7.5.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre/lib
cp mariadb-java-client-2.7.5.jar /usr/share/tomcat/lib/
마리아 디비 jar파일을 다운로드하고 java/jre/lib에 복사해주기
톰캣의 라이브러리에도 jar파일 넣어주기
2) 환경변수 셋팅
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm-exports/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
export CATALINA_HOME=/usr/share/tomcat
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/mariadb-java-client-2.7.5.jar:$CATALINA_HOME/lib/mariadb-java-client-2.7.5.jar
profile 맨 마지막에 추가해줌으로써 환경변수 경로를 설정해줄 것!
필자의 경우 자바 1.8.0 오픈소스 jdk를 사용 중
환경변수 새로고침
source /etc/profile
3) 연동 테스트 페이지 제작
vi /usr/share/tomcat/webapps/ROOT/test.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/test";
String id = "ksh"; //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>
mysql의 접속 계정과 비밀번호, url을 변경하고 실행시킵니다.
4) 데이터베이스 계정, 테이블 생성 및 데이터 집어넣기
mysql -u root
create database test;
create user ksh;
create user 'ksh'@'%' identified by '1234';
GRANT ALL privileges ON test.* TO ksh@'%';
flush privileges;
use test;
create table idol ( groupname varchar(50), membername varchar(50) );
create table Users (id int(5) primary key, name varchar(20), email varchar(20), country varchar(10), password varchar(15));
INSERT INTO Users (id, name, email, country, password) VALUES (1, 'person1', 'person1@apple.com', 'India', 'pankaj123');
INSERT INTO Users (id, name, email, country, password) VALUES (2, 'person2', 'person2@gmail.com', 'USA', 'david123');
INSERT INTO Users (id, name, email, country, password) VALUES (3, 'person3', 'person3@google.com', 'UK', 'raman123');
INSERT INTO Users (id, name, email, country, password) VALUES (4, 'person4', 'KSH@naver.com', 'KR', 'hihi123');
5) 테이블 확인용 JSP 생성
vi /usr/share/tomcat/webapps/ROOT/test2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<style>
table,th,td {
border:1px solid black;
border-collapse:collapse;
text-align: center;
}
</style>
<meta charset="UTF-8">
<title>select title here</title>
</head>
<body>
<%
Class.forName("org.mariadb.jdbc.Driver");
System.out.println("mariadb 사용가능");
Connection conn = DriverManager.getConnection("jdbc:mariadb://localhost:3306/test","ksh2","1234");
System.out.println(conn + "<-- conn");
PreparedStatement stmt = conn.prepareStatement("select * from Users");
System.out.println(stmt + "<-- stmt");
ResultSet rs = stmt.executeQuery();
%>
<table style="width:800px">
<tr>
<td>ID</td>
<td>E-MAIL</td>
<td>COUNTRY</td>
<td>PASSWORD</td>
</tr>
<%
while(rs.next()){
%>
<tr>
<td><%=rs.getString("name") %></td>
<td><%=rs.getString("email") %></td>
<td><%=rs.getString("country") %></td>
<td><%=rs.getString("password") %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
트러블 슈팅
-> 워커가 똑바로 설정되지 않았거나 AJP/13 프로토콜이 작동하지 않음
-> workers.properties, uriworkermap.properties 확인
-> tomcat/conf/server.xml AJP/13 프로토콜 주석처리 확인
2. 페이지가 403 페이지를 보내며 접근 제어를 할 때
-> conf/httpd.conf 파일 내부 허용 권한 부재
-> 첫 번째로 톰캣 내부 경로 확인, selinux 확인, 방화벽 확인
3. 권한 문제
-> sudo를 통해 해결 시 비밀번호 자주 쳐주어야 함
-> 해결하기 위한 명령어 : su root (root로 로그인)
'Opensource' 카테고리의 다른 글
[CentOS7] Apache 버전 업그레이드 (2.4.6 -> 2.4.x) (0) | 2022.10.06 |
---|---|
[CentOS7] nginx 설치 (0) | 2022.03.24 |
[CentOS7] Apache Tomcat 연동 (0) | 2022.03.17 |
[CentOS7] MariaDB설치 yum install (0) | 2022.03.17 |
[CentOS7] Apache설치 yum install (0) | 2022.03.17 |