AWS

[AWS] Amazon Linux 2023 - mySQL 설치

문앵 2025. 2. 18. 10:49

Amazon Linux 2023 최신버전에 mysql을 설치해봤다.

기존 버전에서는 대부분 yum*을 이용해서 설치했지만, 2023에서는 yum의 업그레이드 버전인 dnf를 사용한다.

더보기

*yum

리눅스의 redhat 계열 배포판에서 사용하는 패키지 관리 시스템(Package Management System).

각 계열마다 지원하는게 다르다.

 

Ubuntu, Debian 계열 → apt-get
Amazon Linux 2, CentOS, RHEL 계열 → yum
Amazon Linux 2023, 최신 Fedora 계열 → dnf

 

 

2023에서는 mysql대신 mariaDB 클라이언트를 지원하기 때문에 

 

* 설치

sudo dnf install mariadb105 // 클라이언트만 설치. 다른 디비로 접속
sudo dnf install mariadb105-server -y // 디비 서버까지 사용

 

* 확인

mysql --version

 


설치가 완료되면 mysql 명령어 사용이 가능하다.

만약 서버까지 필요하다면,

 

* 서버 실행

sudo systemctl start mariadb
sudo systemctl enable mariadb

 

 

* 접속

sudo mysql -u root -p
[password] // root

 

* 외부에서 접속해보기

 

 

일단 DB를 하나 만들어주고

create database [디비명];
show databases;

 

외부에서 접속하려면

1. mariaDB 서버 방화벽

2. mariaDB 유저 권한

3. 인스턴스 내부 방화벽

4. aws 네트워크 보안그룹

 

위 단계로 설정을 해주면 된다.

 

1. 버전에 따라 다른데 mariaDB 10.5 버전 하위로는 bind-address 설정을 해줘야하고, 그보다 상위 버전은 기본설정이 되어있음. (근데 만약 설정을 했는데도 풀리지 않으면 "skip-networking( 모든 원격 접속 차단 )" 이 off로 되어있는지 확인 필)

$ mysql --version

 

 

2. 유저 권한 디폴트는 로컬에서만 접속 가능이어서, 나는 새로운 유저를 만들고 다른 아이피에서 사용 가능하도록 해준뒤 권한을 부여했다.

 

* 유저 생성

create user '[username]'@'[ % or ip]' identified by '[password]'; 
// @'%'은 모든 아이피 허용

 

 

* 권한 부여

GRANT ALL PRIVILEGES ON *.* TO '[username]'@'[% or ip]' WITH GRANT OPTION;

 

* 캐시 새로고침

FLUSH PRIVILEGES;

 

 

3. 인스턴스 내부 방화벽

내부에 방화벽 돌고 있는지 확인

$ sudo systemctl status firewalld

 

없거나 비활성화 되어있으면 그냥 aws 보안그룹만 열어주면 됨.

 

활성화되어있으면

sudo firewall-cmd --add-port=[mariaDB 포트]/tcp --permanent //특정포트 허용
sudo firewall-cmd --reload //변경된 방화벽 설정 적용
sudo firewall-cmd --list-all // 방화벽 상태 확인

 

 

4. aws 네트워크 보안그룹은 인스턴스 보안그룹 설정에 가서

인스턴스 - 보안 - 보안그룹 - 인바운드 규칙 편집 - 규칙 추가 - 사용자지정tcp / 3306 / 0.0.0.0/0  해주고 규칙 저장

 

그럼 끗

 

 

이후에 원격접속 툴이나 다른 방법을 이용해서 연결확인 해보면 된다.

 

난 디비버로 했음

 


 

디비버 설치 - 새 데이터베이스 연결 - mariaDB 선택 - 기타 정보 입력

새로 만들어준 디비랑 유저 정보로 접속하면 된당

반응형