Recent Posts
Recent Comments
Archives
๋ฐ˜์‘ํ˜•
250x250
ยซ   2024/04   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Today
Yesterday

Total
04-29 05:43
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

[Java] Servlet ๊ธฐ๋ฐ˜ MySQL ์„œ๋ฒ„ ์—ฐ๋™ํ•˜๊ธฐ!(Tomcat ํ™œ์šฉ) ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Java

[Java] Servlet ๊ธฐ๋ฐ˜ MySQL ์„œ๋ฒ„ ์—ฐ๋™ํ•˜๊ธฐ!(Tomcat ํ™œ์šฉ)

Tony Park 2021. 12. 7. 16:56
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ๋ชฉํ‘œ

Java Sevlet์„ ํ™œ์šฉํ•œ ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ฐ„ MySQL ์—ฐ๋™ ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•œ๋‹ค.

์‚ฌ์šฉํ•  Tool

1.  Java 11 ๋ฒ„์ „
2.  IDE(์ดํด๋ฆฝ์Šค)
3.  Tomcat 9 ๋ฒ„์ „
4.  MobaXterm
5.  Virtual Box
6.  Ubuntu-20 64bit
7.  ์œˆ๋„์šฐ10 64bit
8.  MySQL

๋ชฉ์ฐจ

1.  Java ์ฝ”๋”ฉ
2.  Virtual Box ์„ธํŒ…
3.  ๊ฐ€์ƒ ๋จธ์‹  ์ ‘์†
4.  ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ์„ค์น˜
5.  ์ž๋ฐ” ์„ค์น˜
6.  Tomcat ์„ธํŒ…
7.  MySQL ์„ธํŒ…(๋ฆฌ๋ˆ…์Šค)
8.  MySQL ์„ธํŒ…(์œˆ๋„์šฐ)
9.  MySQL ์—ฐ๋™ ํ…Œ์ŠคํŠธ

โœ”๏ธ ์‚ฌ์ „ ์ค€๋น„

Virtual Box, MobaXterm ์„ค์น˜ ๋ฐ ์„ธํŒ…

https://heytech.tistory.com/192

 

Virtual Box ๋ฐ MobaX๋ฅผ ํ™œ์šฉํ•œ ๊ฐ€์ƒ ์„œ๋ฒ„ ๋งŒ๋“ค๊ณ  ํ™œ์šฉํ•˜๊ธฐ!

๐Ÿ’ก ํ•™์Šต๋ชฉํ‘œ Virtual Box์™€ MobaX๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ€์ƒ ์„œ๋ฒ„ ์ƒ์„ฑ ๋ฐ ํ™œ์šฉ ์‹ค์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค. ๋ชฉ์ฐจ 1. Virtual Box ์„ค์น˜ 1.1. Virtual Box๋ž€? 1.2.  Virtual Box ์„ค์น˜ ๋งํฌ 1.3. ๊ฐ€์ƒ ๋จธ์‹  ์ดˆ๊ธฐ ์„ค์ • 2. ๊ฐ€์ƒ ๋จธ์‹  ๋กœ..

heytech.tistory.com

1.  Java ์ฝ”๋”ฉ

(1) MySQL Connector ์„ค์น˜

MySQL ์ปค๋„ฅํ„ฐ๋ฅผ ์„ค์น˜ํ•ด ์ฃผ์„ธ์š”.

ํŒŒ์ผ์€ ์ž๋ฐ” ํ”„๋กœ์ ํŠธ ๋‚ด src/main/webapp/WEB-INF/lib ํด๋” ์•ˆ์œผ๋กœ ์˜ฎ๊ฒจ์ค๋‹ˆ๋‹ค.

https://dev.mysql.com/downloads/connector/j/

 

MySQL :: Download Connector/J

MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.

dev.mysql.com

(2) Java ์ฝ”๋“œ

์ €๋Š” Prj01 ์ด๋ฆ„์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์˜€๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

1) src/main/java/Dao/Member.java

package Dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Member {
	private Connection conn = null;
	private PreparedStatement pstmt = null;
	private ResultSet rs = null;
	
	public Member() {
		try {
			String DB_URL = "jdbc:mysql://localhost:3306/db01?"
					+ "useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"; // DB ์ ‘์† ์ฃผ์†Œ 
			String USERNAME = "gbpark"; // DB ID
			String PASSWORD = "1"; // DB Password
			String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; // jdbc ๋“œ๋ผ์ด๋ฒ„ ์ฃผ์†Œ
			Class.forName(JDBC_DRIVER);
			conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public int register(String name, int age, int salary) {
        String SQL = "INSERT INTO mytable01(name, age, salary) VALUES(?,?,?)";
        try {
            pstmt= conn.prepareStatement(SQL);
            pstmt.setString(1, name);
            pstmt.setInt(2, age);
            pstmt.setInt(3, salary);
            return pstmt.executeUpdate();
        } catch(Exception e) {
            e.printStackTrace();
        }
        return -1; // database error
    }
}

2) src/main/webapp/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Web Title</title>
</head>
<body>
	<h1>์ด๋ฆ„, ๋‚˜์ด, ๊ธ‰์—ฌ ๊ฐ๊ฐ ์ž…๋ ฅ</h1>
	<form action = "res.jsp">
		์ด๋ฆ„<input type = "text" name = "name"/><br/>
		๋‚˜์ด<input type = "text" name = "age"/><br/>
		๊ธ‰์—ฌ<input type = "text" name = "salary"/><br/>
		<input type = "submit" value = "์ „์†ก"/><br/>
	</form>
</body>
</html>

3) src/main/webapp/res.jsp

<%@page import="Dao.Member"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1> res.jsp </h1>
		<%
		Member member = new Member();
		String name = request.getParameter("name");
		int age = Integer.parseInt(request.getParameter("age"));
		int salary = Integer.parseInt(request.getParameter("salary"));
		member.register(name, age, salary);
		%>
</body>
</html>

(3) WAR Export

ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ - Export - WAR file ์ฐจ๋ก€๋กœ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ์ฒดํฌ๋ฐ•์Šค๋Š” ๋ชจ๋‘ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.

Export ๊ฒฝ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ†ฐ์บฃ ์„ค์น˜ ์œ„์น˜ ๋‚ด webapps ํด๋”๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

C:\Program Files (x86)\Apache Software Foundation\Tomcat 9.0\webapps

2.  Virtual Box ์„ธํŒ…

(1) PC IP ํ™•์ธ

cmd ์ฐฝ์— ipconfig ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด PC IP๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ipconfig

VirtualBox ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ์ผ๋ฐ˜ ์ด๋”๋„ท ํ˜น์€ ๋ฌด์„ ๋žœ IPv4 ์ฃผ์†Œ ๋ณต์‚ฌ!

(2) ๊ฐ€์ƒ ๋จธ์‹  ํฌํŠธ ํฌ์›Œ๋”ฉ

Virtual Box ์‹คํ–‰ ํ›„ ์ƒ๋‹จ ๋ฉ”๋‰ด๋ฐ”์—์„œ ํŒŒ์ผ-ํ™˜๊ฒฝ์„ค์ • ํด๋ฆญ

๋„คํŠธ์›Œํฌ ํƒญ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

์ƒ์„ฑํ•ด๋‘” ๋„คํŠธ์›Œํฌ๋ฅผ ๋”๋ธ” ํด๋ฆญํ•˜๊ณ  ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์šฐ์ธก์— ๋…น์ƒ‰ ํ”Œ๋Ÿฌ์Šค ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ํฌํŠธํฌ์›Œ๋”ฉ ๊ทœ์น™์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ IP์— ์•ž์„œ ํ™•์ธํ•œ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ํฌํŠธ์™€ ๊ฒŒ์ŠคํŠธ ํฌํŠธ 3306๋ฒˆ์„,

๊ฒŒ์ŠคํŠธ IP์—๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์˜ IP๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

(3) ๊ฐ€์ƒ ๋จธ์‹  ์‹คํ–‰

์ด์ œ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋”๋ธ” ํด๋ฆญํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

3.  ๊ฐ€์ƒ ๋จธ์‹  ์ ‘์†

MobaXterm์„ ์‹คํ–‰ํ•˜๊ณ  ์ขŒ์ธก ์ƒ๋‹จ์— Session ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ขŒ์ธก์— SSH๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

PC IP ์ฃผ์†Œ๋ฅผ Remote host ์ž…๋ ฅ์ฐฝ์— ์ž…๋ ฅํ•˜๊ณ  ํ•˜๋‹จ์— OK ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

(4) ๊ฐ€์ƒ ๋จธ์‹  ๋กœ๊ทธ์ธ

๊ฐ€์ƒ ๋จธ์‹ ์— ์ •์ƒ์ ์œผ๋กœ ์ ‘์†ํ–ˆ๋‹ค๋ฉด ๋กœ๊ทธ์ธ ์ฐฝ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

์•„์ด๋”” ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ!

์ •์ƒ์ ์œผ๋กœ ๋กœ๊ทธ์ธ์ด ๋˜์—ˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ€์ƒ ๋จธ์‹ ์— ์ ‘์†๋ฉ๋‹ˆ๋‹ค.

4.  ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ์„ค์น˜

๊ฐ€์ƒ ๋จธ์‹  ์—…๋ฐ์ดํŠธ์™€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get update
sudo apt-get upgrade

๋„คํŠธ์›Œํฌ ๊ด€๋ จ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt install net-tools

5.  ์ž๋ฐ” ์„ค์น˜

๊ฐ€์ƒ ๋จธ์‹ ์— ์ž๋ฐ” 11 ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get install openjdk-11-jdk

์ž๋ฐ”๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

java -version

6.  Tomcat ์„ธํŒ…

(1) Tomcat ์„ค์น˜

๊ฐ€์ƒ ๋จธ์‹ ์— ํ†ฐ์บฃ ๋ฒ„์ „ 9๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get install tomcat9 -y

(2) Tomcat ์ƒํƒœ ํ™•์ธ

ํ†ฐ์บฃ์ด ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ps -ef | grep tomcat

์•„๋ž˜์™€ ๊ฐ™์ด tomcat ์ƒํƒœ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(3) Tomcat ๋ฒ„์ „ ํ™•์ธ

ํ†ฐ์บฃ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  sudo /usr/share/tomcat9/bin/version.sh

์•„๋ž˜์™€ ๊ฐ™์ด 9 ๋ฒ„์ „์ด ์ œ๋Œ€๋กœ ์„ค์น˜๋œ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

(4) ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํŽธ์ง‘

sudo nano /etc/default/tomcat9

์ฃผ์„ ์ฒ˜๋ฆฌ๋˜์–ด ์žˆ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ JAVA_HOME์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท๊ณผ ๊ฐ™์ด "java-8-openjdk" ๋‚ด์šฉ ์ค‘ 8์„ 11๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ž๋ฐ” 11 ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

(5) WAR ํŒŒ์ผ ๋ณต์‚ฌํ•˜๊ธฐ

exportํ•œ war ํŒŒ์ผ์„ ๊ฐ€์ƒ ๋จธ์‹  home/์‚ฌ์šฉ์ž ํด๋”์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

MobaXterm์€ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„ํŽธํ•˜๊ฒŒ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ war ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ์œผ๋กœ ์˜ฎ๊ธด ํ›„์— war ํŒŒ์ผ์„ ์ด๋™ํ•ด ์ค๋‹ˆ๋‹ค.

sudo mv ํŒŒ์ผ๋ช….war /var/lib/tomcat9/webapps

(5) Tomcat ์‹œ์ž‘

ํ†ฐ์บฃ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ†ฐ์บฃ์ด ์‹คํ–‰๋˜๋ฉด war ํŒŒ์ผ๋กœ ๋ฌถ์—ฌ์žˆ๋˜ ํŒจํ‚ค์ง€๊ฐ€ ์ž๋™์œผ๋กœ

ํ’€๋ฆฌ๋ฉด์„œ warํŒŒ์ผ๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํด๋”๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

sudo service tomcat9 start

ํ†ฐ์บฃ ์„œ๋ฒ„ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

sudo service tomcat9 status

์•„๋ž˜์™€ ๊ฐ™์ด active ๋œ ๊ฒƒ์„ ํ™•์ธํ•˜์‹œ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ๊ตฌ๋™๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

1) Tomcat ์ •์ง€

sudo service tomcat9 stop

2) Tomcat ์žฌ์‹œ์ž‘

sudo service tomcat9 restart

(5) ์„œ๋ฒ„ ์—ฐ๊ฒฐ ํ™•์ธ

MobaXterm ์ขŒ์ธก ์ƒ๋‹จ์— Session์„ ํด๋ฆญํ•˜๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด Browser๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

URL์— ๋ณธ์ธIP:8080์„ ์ž…๋ ฅํ•˜๊ณ  ํ•˜๋‹จ์— OK ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ ์˜ˆ์‹œ) http:123.123.123.123:8080

๋ธŒ๋ผ์šฐ์ €์— ์•„๋ž˜์™€ ๊ฐ™์ด It works!๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ๊ตฌ๋™๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(6) ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€ ์ ‘๊ทผ

์ด๋ฒˆ์—๋Š” index.jsp ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์— http:๋ณธ์ธIP์ฃผ์†Œ:8080/ํ”„๋กœ์ ํŠธ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ์ถœ๋ ฅ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

7.  MySQL ์„ธํŒ…(๋ฆฌ๋ˆ…์Šค) 

(1) ์—…๋ฐ์ดํŠธ

sudo apt update

(2) MySQL ์„ค์น˜

sudo apt install mysql-server

(3) ๋ฐฉํ™”๋ฒฝ ์˜คํ”ˆ

3306๋ฒˆ ํฌํŠธ์˜ ๋ฐฉํ™”๋ฒฝ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค.

 sudo ufw allow 3306/tcp

(4) ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ์„ค์ •

์ธ์ฝ”๋”ฉ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ๋ฌธ์„œ๋ฅผ ์—ด์–ด์ค๋‹ˆ๋‹ค.

sudo vi /etc/mysql/my.cnf

๋ฌธ์„œ์— ์•„๋ž˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌ + ๋ถ™์—ฌ ๋„ฃ๊ธฐ ํ•ฉ๋‹ˆ๋‹ค.

[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

(5) root ๊ถŒํ•œ ๋ถ€์—ฌ๋ฐ›๊ธฐ

๊ฐ€์ƒ ๋จธ์‹  ๋กœ๊ทธ์ธ ์‹œ ์ด์šฉํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

sudo -i

(6) MySQL root ๊ถŒํ•œ ์ ‘์†

๊ฐ€์ƒ ๋จธ์‹  ๋กœ๊ทธ์ธ ์‹œ ์ด์šฉํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

mysql -u root -p

(7) DB ์ƒ์„ฑ

create database db01 default character set UTF8;

(8) ์‚ฌ์šฉ์ž ์ƒ์„ฑ

๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” MySQL ์ „์šฉ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

create user '์‚ฌ์šฉ์ž ์ด๋ฆ„'@'%' identified by '๋น„๋ฐ€๋ฒˆํ˜ธ';

(9) ๊ณ„์ • ๊ถŒํ•œ ์„ค์ •

grant all privileges on *.* to '์‚ฌ์šฉ์ž ์ด๋ฆ„'@'%' identified by '๋น„๋ฐ€๋ฒˆํ˜ธ';

๊ถŒํ•œ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

flush privileges;

(10) ํ…Œ์ด๋ธ” ์ƒ์„ฑ

mytable01์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์นผ๋Ÿผ์€ ๋ฌธ์ž์—ด ํƒ€์ž…์˜ name, ์ •์ˆ˜ํ˜• ํƒ€์ž…์˜ age, salary๋กœ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

create table mytable01(name VARCHAR(20), age INT, salary INT) default character set UTF8;

(11) MySQL ๋‚˜๊ฐ€๊ธฐ

exit

(12) bind address ์ฃผ์„์ฒ˜๋ฆฌ

์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •์ฐฝ์— ์ ‘๊ทผํ•˜์—ฌ bind address๋ฅผ ์ฃผ์„์ฒ˜๋ฆฌ(#)ํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅํ•˜๊ณ  ๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

(11) MySQL ์žฌ์‹œ์ž‘

๊ฐ€์ƒ ๋จธ์‹  ๋กœ๊ทธ์ธ ์‹œ ์ด์šฉํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

sudo systemctl restart mysql

8.  MySQL ์„ธํŒ…(์œˆ๋„์šฐ)

์œˆ๋„์šฐ์—์„œ MySQL Workbench๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์—ฐ๊ฒฐ ์„ค์ •์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ๋ณ„๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

- Connection name: ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑ

- Connection Method: Standard TCP/IP over SSH ์„ ํƒ

- hostname: ip ์ž…๋ ฅ(VM ์ด๋”๋„ท IP์ด ์•„๋‹Œ, ์ผ๋ฐ˜ ์ด๋”๋„ท ํ˜น์€ ๋ฌด์„ ๋žœ IP)

- port: 3306 ์ž…๋ ฅ

- username: ์ƒ์„ฑํ•œ ์‚ฌ์šฉ์ž ์ด๋ฆ„

- show in Valut: ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ

 

์•„๋ž˜์— Test Connection ๋ฒ„ํŠผ ํด๋ฆญ

์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค db01 ๋‚ด mytable01 ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•ด ๋ด…๋‹ˆ๋‹ค.

Use db01;
select * from mytable01;

9.  MySQL ์—ฐ๋™ ํ…Œ์ŠคํŠธ

์ด์ œ ๊ฐ€์ƒ ๋จธ์‹  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ „์†ก ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด

์œˆ๋„์šฐ์˜ MySQL ์›Œํฌ๋ฒค์น˜์—์„œ ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ ์ด ๋˜๋Š”์ง€ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค.

์ „์†ก ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด res.jsp๋กœ ํŽ˜์ด์ง€๊ฐ€ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์œˆ๋„์šฐ MySQL ์›Œํฌ๋ฒค์น˜๋กœ ๋Œ์•„์™€ ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•ด ๋ด…๋‹ˆ๋‹ค.

select * from mytable01;

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋„˜์–ด์˜จ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„๋ž˜์— ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ์ฆ๊ฒ๊ณ  ๊ฑด๊ฐ•ํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค :)

728x90
๋ฐ˜์‘ํ˜•
Comments