※ apt 저장소 다운로드 및 서버 업데이트
1. apt 저장소 업데이트
$ sudo apt update
2. 우분투 서버 업데이트
$ sudo apt-get update
(1) JDK-21 다운로드
□ apt 저장소에서 받는 방법
apt install openjdk-21-jre-headless -y
□ 아카이브에서 받는 방법
아카이브에서 원하는 버전의 다운로드 링크 가져온 후 다운로드 - tar xvfz 등으로 압축풀기 필요
- https://jdk.java.net/archive/
sudo wget https://download.java.net/java/GA/jdk21/fd2272bbf8e04c3dbaee13770090416c/35/GPL/openjdk-21_linux-x64_bin.tar.gz
(2) 톰캣 다운로드 [4-2 방법(톰캣내장x 프로젝트)으로 배포시 수행]
1. 아카이브에서 원하는 버전의 다운로드 링크 가져오기 ( 아래는 10버전 )
- https://tomcat.apache.org/ 에서 Core에서 tar.gz 파일 다운로드 링크 복사
ubuntu@ip-172-26-8-212:~$ sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.34/bin
/apache-tomcat-10.1.34.tar.gz
2. 압축풀기
sudo tar xvfz apache-tomcat-10.1.34.tar.gz
<결과 : 파란색이 압축이 풀린 폴더>

3. 압축 해제된 톰캣 폴더에 chmod '쓰기' 권한 설정 (.war 파일 업로드 시 필요)
$ sudo chmod -R 777 /home/ubuntu/apache-tomcat-10.1.34
<결과 ($ ls -l 로 권한 확인)>

4. tomcat 설정파일 수정 (server.xml, context.xml)
※ vim 편집기 실행
$ sudo vim 경로/파일명
■ server.xml : server.xml 70라인에 port="8080"을 port="80"으로 변경
$sudo vim /home/ubuntu/apache-tomcat-10.1.34/conf/server.xml

■ context.xml : allowCasualMultipartParsing="true" path="/" 추가
$sudo vim /home/ubuntu/apache-tomcat-10.1.34/conf/context.xml

5. 톰캣 재실행
$ sudo /home/ubuntu/apache-tomcat-10.1.34/bin/startup.sh
(3) MySQL 셋팅 (포트 개방, 다운로드, 권한 설정)
1. MySQL 포트(3306) 개방

2. 우분투의 apt-get 패키지매니저에서 mysql-server 설치
sudo apt-get install mysql-server
3. 권한 설정
[1] 관리자로 mysql 접속
sudo mysql -u root -p
[2] root 연결을 원격연결 비밀번호 방식으로 변경
前 : root 사용자는 auth_socket 플러그인을 이용하여 인증 로그인
後 : mysql_native_password로 변경
mysql> update mysql.user set plugin='mysql_native_password' where user='root';
[3] 변경사항 반영
mysql> flush privileges;
(참고) flusth privileges |
- mysql에서 사용자 계정, 권한에 변경 사항이 생겼을 때 기존의 캐시를 리프레쉬하고 새로운 변경사항을 즉시 반영하는 명령 - ( 안써도 되는 경우 ) : create user, drop user, grant, revoke 같은 명령어는 수행 즉시 자동으로 FLUSH PRIVILEGES를 수행하고 내용을 즉시 반영 - ( 써야 하는 경우 ) : mysql.user 테이블을 직접 update, insert 등으로 수정했을 때 |
§ 변경이 반영된 모습

[4] root의 비밀번호 변경
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '비밀번호입력';
[5] 일반 계정으로 root 비밀번호 입력하여 접속 확인
mysql> exit
$ mysql -u root -p
$ (설정한 비밀번호 입력)
[6] 원격 접속 허용 (root@%) user 생성 및 권한 설정
1.원격접속user 생성 ( % = 어디서든 접속가능하도록 설정 )
mysql> create user 'root'@'%' identified by '비밀번호 설정';
2. 전체 DB에 대해 권한을 가진 사용자 추가
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
[7] 원격 접속 허용을 위한 mysql 설정파일 수정
$sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
i (insert 모드) 입력 후 아래 주석풀기 및 bind-address 부분 내용변경
:wq! 로 저장하고 끝내기 (저장을 하지 않아야하면 :q!)

4. 우분투 mysql 서버 재시작
$ sudo service mysql restart
(4-1) 톰캣 내장한 war파일 배포시
(톰캣을 내장한 war파일을 배포 - (2)부분 시행 x)
1. sts에서 로컬에 있는 프로젝트 MAVEN 패킹
1.프로젝트 클린 2/프로젝트 우클릭 : run as -> maven clean maven -> update project run as -> maven build : profiles 공백 수정 / goals : package -> run 클릭 3.프로젝트 새로고침 후 target 폴더 안에 있는 파일 확인 대상 파일 : "mall-0.0.1-SNAPSHOT.war" 형식 (참고) jar 파이 빌드를 원하면 pom.xml에서 war 를 jar로 변경 필요 pom.xml 에서 artifactId ~ packaging mall-0.0.1-SNAPSHOT.war 를 원하는 파일명으로 저장 ( exam.war 등...) |
2. 패킹한 파일 우분투로 만든 폴더로 이동 ( FileZilla 프로그램 등 활용 )
(1) FileZilla 에서 site manager 열기
Transfers Finish 알림창이 뜨면 우분투 다시 실행
//(프로젝트 run)
sudo java -jar /home/ubuntu/mall/test.war
(4-2) 톰캣 내장하지 않은 war파일 배포시
1. sts : *.war(이클립스 - export - war)
2. export로 받은 파일을 filezilla를 이용하여 (2)에서 다운 받은 톰캣 폴더의 webapps 폴더에 붙여넣기

3. 톰캣 재실행
$ sudo /home/ubuntu/apache-tomcat-10.1.34/bin/startup.sh
※ SSH 창 꺼도 서버 실행되게끔 설정
1. 서비스 파일 생성
$ sudo nano /etc/systemd/system/프로젝트명.service
// 아래 내용 복사 붙여넣기
[Unit]
Description=Groupware Spring Boot Application
After=network.target
[Service]
User=ubuntu
WorkingDirectory=디렉토리 경로
ExecStart=/usr/bin/java -jar 배포파일 경로
SuccessExitStatus=143
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
※ 서비스 파일 수정

컨트롤 x → y → 엔터
2. 서비스 활성화 및 시작
# systemd 설정 다시 로드
sudo systemctl daemon-reload
# 서비스 자동 시작 활성화
sudo systemctl enable group
sudo setcap 'cap_net_bind_service=+ep' $(readlink -f /usr/bin/java)
# 서비스 시작
sudo systemctl start group
// 배포 파일 수정 등 재시작이 필요한 경우
# 서비스 재시작
sudo systemctl restart group
3. 서비스 상태 확인
$sudo systemctl status group
→ 서비스 정상 실행 시, 『 Active: running 』 출력
출처 :
https://binwrite.com/mysql-flush-privileges/
MySQL FLUSH PRIVILEGES 안 해도 되는 이유 – 엔지니어의 기록
MySQL에서 사용자 계정 관련 쿼리를 수행하고 뭔가 뜻대로 반영이 잘 안 되는 거 같으면 무지성으로 FLUSH PRIVILEGES 를 날려보는 경향이 있습니다. 그치만 FLUSH PRIVILEGES가 무엇인지 정확히 알면 쓸 일
binwrite.com
https://cafe.naver.com/jjdev/16661
12/16 AWS Lightsail 서버 설정 + mysql8 설정 + DB복사
0) AWS 회원가입 https://cafe.naver.com/jjdev/11485 0) Lightsail 콘솔 접속 후 한 "한국어"변경 https://lightsail....
cafe.naver.com