본문 바로가기
SeSAC/네트워크 & 리눅스

[SeSAC 성동캠퍼스 1기] 네트워크&리눅스 5일차

by zivvon 2023. 11. 9.
목차 접기

[ mysql 서버 설치 ]

1. 설치
apt-get install mariadb-server​


+ 설치 잘 됐는지 확인하기!

netstat -anp | grep mysql

2. 외부에서도 들어올 수 있는 IP 주소(0.0.0.0)로 바꾸기!
cd /etc/mysql/
grep "127.0.0.1" -r ./
vi ./mariadb.conf.d/50-server.cnf​

3. mariadb 실행하기
systemctl restart mariadb

4. mariadb 접속 
mysql -u root
mysql -u root -h localhost​


5. 계정 생성하기

use mysql;
create user 'mydb'@'%' identified by 'abcd';
grand all privileges on *.* to mydb@[DB 서버 IP];
flush privileges;



 

mariadb에 접속했으면, 데이터베이스와 테이블을 생성하고 삽입, 수정, 삭제 과정을 실습해본다!

1. 데이터 베이스와 테이블 생성하기
create database testDB1;
use testDB1;​
create table test_1 (
  name varchar(15),
  phone varchar(10) );


+ 이 때, 생성한 데이터베이스와 테이블을 보고 싶다면!

show databases;
desc [테이블명];


💡참고로 리눅스 db내에서 쿼리문은 대소문자를 구분하지 않는다고 한다!

2. 생성한 테이블에 column 삽입하기

INSERT INTO [테이블명] (열1, 열2, ...) VALUES (값1, 값2, ...)


ex)

insert into test_1 (name, phone) values ("홍길동", "1111-1111");

 


3. 테이블 확인하기!
여러 방법이 있지만 실습에서 다른 내용만 적어두겠다.
SELECT * FROM [테이블명]​
SELECT * FROM [테이블명] WHERE [조건식]​

3. 테이블 값 변경하기
UPDATE [테이블명] SET [COL = 값] WHERE [조건식]​

4. 테이블 값 삭제하기
DELETE FROM [테이블명] WHERE [조건식]​​

5. 테이블, 데이터베이스 삭제하기
DROP [테이블명]
DROP [데이터베이스명]​​

결과 화면들!

 

 

 

[ DB와 연동할 WAS 서버 설정하기 ]

1. mysql client 설치하기
apt-get install mariadb-client-core-10.3​

2. 잘 접속되는지 확인하기
mysql -u mydb -h [DB 서버 IP 주소] -p​


3. 톰캣 서버 연동 작업
-1) 커넥터 수동 설치

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-amd64/lib/
cp mariadb-java-client-2.7.5.jar /usr/local/tomcat/lib/

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.40.tar.gz
tar xvf mysql-connector-java-5.1.40.tar.gz
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/tomcat/lib/

-2) 환경변수 세팅!
⚠️ 파일 경로 확인해보기
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/
export CATALINA_HOME=/usr/local/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​

⚠️ 재시작 안 하고 세팅 저장하기
source /etc/profile​

4. 홈페이지 소스 올리기
/usr/local/tomcat/webapps/ROOT/login.jsp​

5. 브라우저에서 잘 작동하는지 확인!

 

 

💡Mission!

login.html을 통해서 로그인 ID/PWD를 입력받도록 하고,
로그인 성공 시 main.html 페이지를 열어서 보여주고, 실패 시 login.html로 돌아가기
단, login.html에는 이전에 입력했던 값이 남아있으면 안된다.

전송 method는 post 방식을 사용하고, post 방식으로 동작하는지는 access.log를 통해 확인 가능해야 함

 

login.jsp

⚠️ 만~약에 참고하실 새싹 동기들이 계시다면! 저는 DB_URL 설정에서 db 계정명이 myd라 mycl로 바꾸셔야 합니다!

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%
String uid = request.getParameter("name");
String pwd = request.getParameter("pwd");
String DB_URL = "jdbc:mysql://10.10.10.6:3306/myd";
String DB_USER = "mydb";
String DB_PASSWORD = "abcd";
String sel = "";
ResultSet rs = null;
Connection conn;
Statement stmt;

try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
    stmt = conn.createStatement();
    //사용자정보조회
    sel = "select * from userInfo where uname='" + uid + "' and pass='" + pwd + "'";
    rs = stmt.executeQuery(sel);
    if (rs.next()) {
        out.println("Success");
    }
    else {
        out.println("fail");
        //history.back(-1);
        response.sendRedirect("http://10.10.10.2/login.html");
    }
    conn.close();
} catch(Exception e) {
    out.println(e.getMessage());
}
%>

 

login.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
로그인 창!
</head>
    <body>
        <form action = "login.jsp" method = "POST">
            User ID : <input type="text" name="name" />
            <br />
            Password : <input type="password" name="pwd" />
            <input type="submit" value="로그인" />
        </form>
    </body>
</html>

 

=> main.html은 귀찮아서 따로 만들지는 않았다! 그래도 만든 것처럼 작동함 :-)

 

access.log에서 nginx상에서 잘 작동하는 걸 확인할 수 있다 :) 야호!!!

 


 

오늘의 후기!
: 역시 SQL문 만지고 HTML 쓰니까 그나마 적응이 쉽다! ㅋㅋ.... 

 

그래도 여전히 네트워크 개념에 많이 무지하고, 리눅스 또한 버벅거리는 부분이 많다

그나마 스스로 칭찬해줄 부분은! 매일매일 만지다 보니 자주 쓰는 명령어 몇 개는 이제 금방 쓴다는 것

역시 IT 분야는 꾸준히 공부하는 게 제일 잘하는 개발자가 되는 기초인 것 같다.

 

블로그 정리에서 그치지말고 복습 또 복습하면서 내 걸로 만들자! 파이팅~~~...ㅎ