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 선택 - 기타 정보 입력
새로 만들어준 디비랑 유저 정보로 접속하면 된당
'AWS' 카테고리의 다른 글
aws에 저장된 도메인을 이용하여 하위 도메인으로 설정하기 - 공유기 포트포워딩 (2) | 2024.07.09 |
---|---|
[AWS] 스냅샷 공유를 이용한 계정간 rds 데이터 이동 /백업 / 복원 , KMS 키 발급 (2) | 2022.08.17 |