Oracle Cloud 계정 생성
VM 인스턴스 생성 -> vm 이름 입력 ( 자동 생성 해줌 ) -> 이미지 및 구성에 우분투 선택 -> SSH 키 추가에서 전용 키, 공용 키 저장 -> 생성 및 시작
.key -> .ppk로 변환 방법
PuTTYgen 실행 -> Load an existing private key file -> .key 파일 업로드 ( passphrase 필수 x ) -> Save private key
- PuTTy -> new session -> 퍼블릭 ip(sbsun.softagape.com) 친 후 save
- Categoty 메뉴에 SSH -> Auth -> Credentials -> private Key file for authentication 에 ppk 파일 업로드
- 첫 암호는 ubuntu
- sudo apt update
- sudo apt upgrade
서버 RAM 스왑 공간 만들기
물리적 RAM이 이미 사용 중인 경우 Amazon EC2 인스턴스가 스왑 공간을 물리적 RAM의 단기적인 대체 공간으로 사용합니다.
스왑 파일 생성
- dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성합니다. 명령에서 bs는 블록 크기이고 count는 블록 수입니다. 스왑 파일의 크기는 dd 명령의 블록 크기 옵션에 count 옵션을 곱한 값입니다. 이 값을 조정하여 원하는 스왑 파일 크기를 결정합니다.
지정한 블록 크기는 인스턴스의 사용 가능한 메모리보다 작아야 합니다. 그렇지 않으면 "memory exhausted" 오류가 발생합니다.
이 dd 명령 예제에서 스왑 파일은 4GB(128MB x 32)입니다.
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
- 스왑 파일의 읽기 및 쓰기 권한을 업데이트합니다.
$ sudo chmod 600 /swapfile
- Linux 스왑 영역을 설정합니다.
$ sudo mkswap /swapfile
- 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 합니다.
$ sudo swapon /swapfile
- 절차가 성공적으로 완료되었는지 확인합니다.
$ sudo swapon -s
- 부팅 시 /etc/fstab 파일을 편집하여 스왑 파일을 시작합니다.
편집기에서 파일을 엽니다.
$ sudo vi /etc/fstab
파일 끝에 다음 새 줄을 추가하고 파일을 저장한 다음 종료합니다.
/swapfile swap swap defaults 0 0
https://repost.aws/ko/knowledge-center/ec2-memory-swap-file\
Ubuntu에서 OpenJDK 17 설치
sudo apt update
sudo apt install openjdk-17-jdk
java -version
java 명령어 실행 안될시 path 설정 필요
MySQL 설치
- 서버 패키지 인덱스를 업데이트합니다.
$ sudo apt update
- MySQL 서버 패키지를 설치합니다.
$ sudo apt install mysql-server -y
- 서버에 설치된 MySQL 버전을 확인합니다.
$ mysql --version
MySQL 시스템 서비스 관리
MySQL은 Ubuntu 24.04 서버에서 데이터베이스 서버 프로세스 및 런타임을 제어하기 위해 mysql 시스템 서비스를 사용합니다. 다음 단계에서 mysql 시스템 서비스를 부팅 시 자동으로 시작하도록 설정하고 서버에서 데이터베이스 프로세스를 관리하기 위해 서비스 상태를 확인합니다.
- MySQL을 부팅 시 자동으로 시작하도록 설정합니다.
$ sudo systemctl enable mysql
출력:
Synchronizing state of mysql.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable mysql
- MySQL 데이터베이스 서버를 시작합니다.
$ sudo systemctl start mysql
- MySQL 서버 상태를 확인하여 실행 중인지 확인합니다.
$ sudo systemctl status mysql
출력:
mysql.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: en>
Active: active (running) since Tue 2024-06-04 15:57:55 EEST; 1h 11min ago
Main PID: 7523 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 7024)
Memory: 375.5M (peak: 379.3M)
CPU: 2min 32.531s
CGroup: /system.slice/mysql.service
└─7523 /usr/sbin/mysqld
MySQL 서버 보안
MySQL 서버를 보호하여 데이터베이스에 무단으로 액세스하는 것을 방지하는 것은 중요한 단계입니다. 기본적으로 특권 사용자인 root는 MySQL 데이터베이스 콘솔에 액세스 할 수 있습니다. 다음 단계에서 MySQL root 사용자 암호를 만들고 보안되지 않은 기본값을 비활성화하여 데이터베이스 서버를 보안합니다.
- 다음 명령을 실행하여 MySQL 보안 설치 스크립트를 시작합니다.
$ sudo mysql_secure_installation
아래 스크립트 프롬프트를 따라서 새 root 사용자 암호를 설정하고 익명 사용자를 제거하고 원격 root 로그인을 금지하고 MySQL 데이터베이스 서버에서 테스트 데이터베이스를 삭제합니다.
- VALIDATE PASSWORD 구성 요소: Y 입력 후 Enter를 눌러 서버에서 암호 유효성 검사를 활성화합니다.
- 암호 유효성 정책: 1 입력, 짧은 비밀번호 허용하기 위해
- 새 암호: root 데이터베이스 사용자에 할당할 새로운 강력한 암호를 입력합니다.
- 새 암호 다시 입력: 루트 사용자 암호를 확인하기 위해 암호를 다시 입력합니다.
- 제공된 암호를 사용하시겠습니까? Y를 입력하여 새 사용자 암호를 적용합니다.
- 익명 사용자 제거? Y를 입력하여 알 수 없는 데이터베이스 사용자에 대한 MySQL 콘솔 액세스를 취소합니다.
- 원격 root 로그인 금지? Y를 입력하여 서버에서 MySQL 루트 사용자 계정에 대한 원격 액세스를 비활성화합니다.
- 테스트 데이터베이스 및 액세스 제거? Y를 입력하여 MySQL 테스트 데이터베이스를 삭제합니다.
- 권한 테이블 다시로드? 변경된 구성 변경 사항을 적용하려면 Y를 입력합니다.
- 구성 변경 사항을 적용하려면 MySQL 서비스를 다시 시작합니다.
$ sudo systemctl restart mysql
```
sudo mysql -u root -p
```
create database sbsun_db character set utf8mb4 collate utf8mb4_general_ci;
create user 'sbsun_user'@'%' identified by 'sbsun1234!';
grant all privileges on sbsun_db.* to 'sbsun_user'@'%' with grant option;
flush privileges;
mysql -u sbsun_user -D sbsun_db -p
sbsun1234!
use sbsun_db;
db 데이터
.dmp ( dump ) 서버 mysql 집어넣기
사이트 ip 번호 찾기
cmd
Ping sbsun.softagape.com