[ EC2_Amazon Linux ] Mysql 설치하기

Dev_ch·2022년 11월 4일
0
본 글은 2022.11.02에 작성되었습니다.

저번에 ubuntu를 세팅했었다. Amazon Linux 운영체제에 mysql을 설치하다가 난관에 봉착하여 ubuntu로 도망갔었는데 내가 이거 하나 제대로 못할까란 생각해 다시 Linux 인스턴스를 생성해서 도전에 나섰다. 추후 Redis 설치법까지 알아보도록 하겠다. 이번 편에서는 Mysql를 설치하는 방법만 알아보고 내가 부딪혔던 오류들에 대해 살펴보도록 하겠다.

1. 진행


아래 진행사항들은 위와같이 ssh로 생성한 EC2 인스턴스 접속을 한 이후에 진행되는 것 이다.

$ sudo yum update -y
$ sudo yum localinstall -y https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
$ sudo yum install -y mysql-community-server

처음에는 위 커맨드들을 EC2 환경에서 차례대로 입력하여 설치를 진행하였다. 설치가 완료된 후 mysql 서버를 가동하려 했으나 서버가 가동이 되지 않았다. 그래서 구글링을 좀 더 해보면서

$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
$ sudo yum install mysql-community-server

위와 같이 커맨드를 입력하였는데 (The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository.)와 같이 오류가 났다.

$ sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

그래서 구글링 박박하고 위의 커맨드를 입력한 후 다시 $ sudo yum install mysql-community-server를 입력해주니 제대로 먹혔다. 혹시 몰라 설치가 잘되었는지 $ mysql --version 커맨드를 이용하여 설치가 잘 되었음을 확인하였다.

$ sudo systemctl enable mysqld
$ sudo systemctl start mysqld
$ sudo netstat -plntu

// 만약 mysql server가 실행되지 않았다면
$ sudo systemctl restart mysqld

위의 커맨드를 차례대로 입력 후 mysql 서버를 가동한 후 3306 포트가 떠있는지 확인하였다. 만약 실행되지 않았다면 맨 아래의 커맨드를 이용해 mysql을 재부팅 후 3번째 줄 커맨드를 입력하여 3306 포트가 떠있는지 확인해주자.

이제 기쁜 마음으로 root 계정으로 접속하려 했지만 ubuntu와 마찬가지로 접속이 되지 않았다. 그래서 root 계정에 들어가기 위해 아래의 과정을 거쳤다.

$ sudo grep 'temporary.*root@localhost' /var/log/mysqld.log | tail -n 1 | sed 's/.*root@localhost: //'

위 커맨드를 입력하여 성공하였을 경우 임시 비밀번호가 발급된 것을 확인할 수 있을 것이다. 그렇다면 받은 비밀번호로 mysql의 root 계정에 로그인을 해주는데 꼭 sudo 모드로 접속해주도록 하자. ex) $ sudo mysql -u root -p

발급받은 임시 비밀번호를 패스워드 입력에 복붙 한 후 엔터를 누르면 제대로 접속될 것이다. 그렇다면 이제 비밀번호를 변경해야 하기 때문에 비밀번호를 수정하는 과정을 거쳐주어야 한다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운 암호';
mysql> FLUSH PRIVILEGES;

위의 커맨드를 입력하여 새로운 암호를 만들어주고 2번째 커맨드로 변경사항을 즉시 적용시켜준다. 이제 root 계정이 아닌 외부 접속을 허용할 계정을 하나 만들 것이며 이는 전에 작성한 ubuntu 관련 게시글과 똑같이 해주면 되는데 아래를 참고하자.

$ create user '사용할 유저명'@'%' identified by '사용할 비밀번호';
$ grant all privileges on *.* to '유저명'@'%' with grant option;

위의 커맨드를 입력하면 외부에서 접속이 허용 가능한 유저를 만들고 유저를 접속한 곳은 모든 권한을 허용해줄 수 있다. 이렇게 하여 SequelAce를 이용하여 퍼블릭 IP 주소, 설정한 유저명, 비밀번호를 입력하여 접속이 되는 것을 확인하였다.

2. 마무리


그렇게 어려울 것은 없었는데 자꾸 다른길로 새 가지고 더 복잡해졌던 것 같다. 이로써 ec2 내부에 mysql 설치 및 외부 접속이 가능하게끔 만들었기에 RDS를 사용하지 않고 ec2 내부 서버로 mysql을 돌릴 수 있게 됐다. RDS가 자꾸 요금이 부과되는 문제를 해결을 못하고 있기에 사실 최선책을 내고 있는 중인데 왜 돈이 나가는지 좀 알고 싶다.. 무튼! 다음 편에는 Redis 설치기로 넘어가겠다. 그럼 20000

3. 도움이 된 블로그


https://sedangdang.tistory.com/187
https://velog.io/@ssoop/AWS-EC2%EC%97%90-MySQL-%EC%84%A4%EC%B9%98MySQL-5.7

profile
내가 몰입하는 과정을 담은 곳

0개의 댓글