22 년 기준 Amazon Linux2 는 CentOS 기반으로 되어있으며, 기본적으로 Yum Repository 에는 MySQL 서버의 패키지 경로가 존재하지 않는다.
따라서 먼저 Amazon Linux2 서버 위에 Yum Repository 를 추가해준다.
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
Yum Repository 가 등록되었다면 다음 명령어를 통해 MySQL Community Server 를 구축해준다.
sudo amazon-linux-extras install epel -y
sudo yum -y install mysql-community-server
다음으로는 EC2 위에서 MySQL 서비스를 실행시켜준다.
sudo systemctl enable --now mysqld
서비스의 실행 상태는 다음 명령어로 확인할 수 있다.
systemctl status mysqld
MySQL 서버는 초기에 Root 계정만 존재하며, 임시 비밀번호가 발급된 상황이다.
초기에 해야할 일은 임시 비밀번호를 대체하고, 실제 데이터베이스에 접근할 사용자 계정을 만드는 일이다.
sudo grep 'temporary password' /var/log/mysqld.log
명령어를 치게 되면 다음과 같이 임시 비밀번호가 튀어나온다.
임시 비밀 번호를 이용해서 MySQL 서버에 접속한다.
mysql -uroot -p
위와 같이 명령어를 입력하면 localhost 에 루트 계정으로 접속을 시도하게 된다. 비밀번호 창이 나오면 임시 비밀번호를 입력해준다.
초기에 MySQL 에 들어가면 가장 먼저 해야할 일은 루트 비밀번호를 변경하는 것이다. 이를 하지 않고는 사실상 아무 작업도 하지 못한다.
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '변경할 비밀번호';
다음 명령어를 입력해서 권한을 반영해준다.
FLUSH PRIVILEGES;
- 슈퍼 유저 만들기
Root 계정으로 MySQL 에 접근하는 건 안전하지 못하며, 필요한 권한만 가진 데이터베이스 사용자 계정을 만드는 것이 좋다.
다음 명령어를 통해 사용자 계정을 만든다.
create user '<계정 이름>'@'%' identified by '<비밀번호>';
원래는 가져야하는 권한만 정의해서 사용자 계정을 만들어야하지만, 이번 포스팅에서는 슈퍼 유저를 만들어보도록 한다.
다음 명령어를 사용하면 모든 데이터베이스에 대한 모든 권한을 사용자가 어디에서 접근하던지 부여할 수 있다.
GRANT ALL PRIVILEGES ON *.* to '<계정 이름>'@'%';
마찬가지로 설정 이후에는 다음 명령어로 권한을 반영해주도록 한다.
FLUSH PRIVILEGES;
참고 :
https://techviewleo.com/how-to-install-mysql-8-on-amazon-linux-2/
'Database > MySQL' 카테고리의 다른 글
MySQL 바이너리 로그(binlog)에 대한 이해 (0) | 2021.11.21 |
---|---|
MySQL 에서 사용하는 Key 의 정의와 종류들에 대하여 (0) | 2019.01.24 |
MySQL에서 Int형 뒤의 숫자의 의미 (0) | 2018.11.21 |
Database Replication 전반에 대한 이해 (0) | 2018.10.02 |
MySQL의 Transaction Isolation Level 에 대하여 (0) | 2018.09.19 |