개발아 담하자

[Docker/Ubuntu] Ubuntu Container 안에 JDBC 연결하기 본문

🤖 DataBase Project

[Docker/Ubuntu] Ubuntu Container 안에 JDBC 연결하기

choidam 2020. 4. 15. 02:45

Ubuntu Contaienr 안에 JDBC 실습을 진행해 보자 👏

 

선수 환경 👇

https://silver-g-0114.tistory.com/50

 

[Docker] docker 실습하기 (버전 확인, container 생성 및 접속, docker mySQL 설치, testDB 설치)

docker 실습 환경 구축이 끝났으면 실습을 시작해보자 👏 실습 환경 준비가 안되었다면? 👇 https://silver-g-0114.tistory.com/49?category=1107817 [Docker] docker 실습환경 제대로 구축하기 (docker toolbox,..

silver-g-0114.tistory.com


 

Create Ubuntu Container 🐳

$ docker run -d -it  -p 8080:8080 --name=ubt1 ubuntu

$ docker exec -it ubt1 bash

docker container 를 처음 만들 때 port 번호를 8080 으로 설정해두자

 

 

Set Port Number 🐳

port number setting

설정 > 네트워크 > 고급 > 포트포워딩 > 추가 에 들어가 호스트 포트와 게스트 포트를 각각 8080 으로 설정해둔다.

 

 

Install Driver 🐳

# apt update

# apt install openjdk-11-jdk

# apt install libmysql-java

# apt install tomcat8

# cd /usr/share/java

# ln -s /usr/share/java/mysql-connector-java.jar /usr/share/tomcat8/lib/connector-java.java

# service tomcat8 start

tomcat 첫 실행 (localhost:8080)

localhost:8080 으로 들어갔을 때 위 화면이 나오면 tomcat 서버 접속 성공이다 👏

 

 

Set MySQL

# apt install mysql-server
# apt install mysql-client
# service mysql start

# mysql -uroot -p

mysql 서버를 킨 다음 root user 로 mysql에 접속한다.

 

mysql > select user, authentication_string, plugin, host from mysql.user;

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

root user 에 권한이 아직 부여되지 않았음을 확인할 수 있다.

 

mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'password';
mysql> flush privileges;
mysql> grant all privilegesss on *.* to 'root'@'localhost' with grant option;

mysql> select user, authentication_string, plugin, host from mysql.user;

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

mysql> exit;

root user 에 권한 부여 완료❗️

 

 

Setting Classpath

# nano .bashrc

.bashrc 폴더에 들어가 다음과 같은 경로를 입력한다.

export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar
source .bashrc

경로 저장 완료 ❗️ 이걸 해두지 않으면 jdbc driver 를 찾지 못하는 오류가 발생한다 ..

 

 

JDBC 실습 시작하기

# nano /var/lib/tomcat8/webapps/ROOT/sample.jsp

sample.jsp
localhost:8080/sample.jsp

employees table 의 first_name, last_name 을 모두 잘 로드해옴을 확인할 수 있다.

JDBC 실습 첫 성공 ‼️