로걸에서 AWS EC2 서버에 복사한 jar 파일 실행을 위해 MySQL을 설치/접속 해보겠습니다.
전체흐름
Yum Repository 에는 MySQL 서버의 패키지 경로가 존재하지 않는다.
1. 따라서 먼저 Amazon Linux2 서버 위에 Yum Repository를 추가해준다.
2. MySQL 설치한다.
3. MYSQL 시작한다.
4. MySQL 접속한다.
5. MySQL root계정 접속하여 비밀번호 변경
6. 사용자 계정 생성 후 권한 부여
사전 작업
$ cat /etc/os-release
$ sudo yum -y update
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
$ sudo yum -y install mysql-community-server
$ ls /etc/yum.repos.d
명령어로 확인 가능YUM 패키지 관리자의 저장소(repositories) 목록을 출력하는 명령어
$ sudo yum repolist
mysql --version
$ sudo systemctl start mysqld
: MySQL 서비스를 수동으로 시작합니다.
$ sudo systemctl enable --now mysqld
: MySQL 서비스를 부팅시 자동으로 시작하도록 활성화하고, 즉시 실행합니다.
MySQL을 설치하고 초기 설정을 마치려면, 보통 enable --now로 MySQL 서비스를 활성화 및 시작하는 것이 편리합니다.
$ systemctl status mysqld
: 현재 MySQL 서비스의 상태를 확인할 수 있습니다.
sudo grep 'temporary password' /var/log/mysqld.log
:$ mysql -uroot -p
명령어 입력 후 비밀번호 입력합니다.여기서는 사용하지 않지만
$ sudo mysql_secure_installation -p
명령을 실행하면 MySQL을 보안 설정하는 대화형 인터페이스가 시작됩니다. MySQL 쉘에서 직접 root 비밀번호를 변경할 수 있다는 것을 나타냅니다.
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '변경할 비밀번호';
MySQL 5.7.6 이상에서는 패스워드 정책이 추가되어, 보안 상의 이유로 일정한 규칙을 따라야 합니다.
1. 8자 이상의 길이
2. 대문자, 소문자, 숫자, 특수문자 중 세 가지 이상의 조합 사용
3. 이전에 사용한 비밀번호와 다르게 설정
FLUSH PRIVILEGES;
MySQL에서 보안을 강화하려면 root 계정 외에도 필요한 권한만 가진 사용자 계정을 만들어 사용하는 것이 좋습니다.
create user '<계정 이름>'@'%' identified by '<비밀번호>';
보안상의 이유로 최소한의 권한만 부여하는 것이 좋습니다.
GRANT ALL PRIVILEGES ON *.* to '<계정 이름>'@'%';
: 모든 권한을 부여GRANT ALL PRIVILEGES ON database_name.* TO 'ward'@'%';
: 특정 데이터베이스나 특정 테이블에 대한 권한만 부여GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'ward'@'%';
: CRUD 작업에 필요한 최소한의 권한만 부여FLUSH PRIVILEGES;