다가오는 다음을 향해
[AWS ubuntu] AWS EC2 MySQL sever설치 및 Workbench 연결 본문
▼ 개발환경
MacBook Pro M1
Springboot
[ IDE ] ]IntelliJ IDEA (Ultimate Apple Silicon 2022-02])
[ Spring ] springboot 2.7.1(springframework - 5.3.21)
[ Java ] java-1.8(openjkd 1.8.0_342)
[ Build Tool] Maven 3.3.2
[ WAS ] Tomcat (Apache Tomcat-9.0.64)
[ RDBS ] MySql - 8.0.30
[ Lombok ] 1.18.24
[ mybatis ] 2.1.3
사전준비
EC2 인스턴스 생성(ubuntu)
인바운드 규칙 추가 (포트번호 : 3306)
왼쪽 상단 [인바운드 규칙 편집] 버튼을 클릭합니다.
사용자지정 TCP , 3306 포트를 위치 무관으로 설정합니다.
[인바운드 규칙 추가된 화면]
인스턴스를 재부팅 합니다.
MySql Server 설치 (ubuntu)
// 패키지 인덱스 정보 업데이트를 합니다.
sudo apt-get update
// 설치된 패키지를 업그레이드 합니다.
sudo apt-get upgrade
패키지 정보 업데이트 및 업그레이드 합니다.
sudo apt-get install mysql-server
mysql 을 설치합니다.
sudo ufw allow mysql
외부접속을 허용합니다.
sudo systemctl start mysql
mysql을 실행합니다.
sudo systemctl enable mysql
서버 재 실행 시 mysql도 자동으로 실행되게 합니다.
sudo systemctl status mysql
설치 완료 후 mysql 상태를 조회 할 수 있습니다.
[mysql status 조회화면]
MySql 설정
sudo mysql -u root -p
mysql에 접속합니다.(초기 비밀번호는 설정되어 있지 않습니다.)
[mysql root 접속 성공화면]
use mysql; // mysql database
데이터 베이스를 선택합니다.
select host,user,authentication_string from mysql.user;
root 접속권한체크 : root 아이디는 보안을 위해 외부호스트 포트 연결을 하지 않습니다.
[조회 결과화면]
ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호';
root 사용자 비밀번호를 변경합니다.
- 비밀번호는 대문자, 소문자, 숫자, 특문 12자리 이상으로 해야합니다.
- 저는 복붙했을때 '가 제대로 인식 안돼서 직접 입력했습니다.
[비밀번호 변경 결과화면]
CREATE USER '사용자아이디A'@'%' IDENTIFIED BY '비밀번호';
CREATE USER '사용자아이디A'@'localhost' IDENTIFIED BY '비밀번호'; // '%' 의 의미는 외부에서의 접근을 허용
동일한 아이디로 %와 localhost 사용자를 추가합니다.
- 비밀번호는 대문자, 소문자, 숫자, 특문 12자리 이상으로 해야합니다.
- 저는 복붙했을때 '가 제대로 인식 안돼서 직접 입력했습니다.
grant all privileges on *.* to '사용자아이디A'@'%';
grant all privileges on *.* to '사용자아이디A'@'localhost';
권한을 부여합니다.
flush privileges;
변경사항을 반영합니다.
[사용자등록, 권한부여, 변경사항 반영 질의문 결과 화면]
select host,user,authentication_string from mysql.user;
추가한 사용자 및 권한을 확인합니다.
[조회 결과화면]
quit;
mysql을 종료합니다.
MySQL 설정 변경
cd /etc/mysql/mysql.conf.d
설정파일이 있는 곳으로 이동합니다.
[ cd /etc/mysql/mysql.conf.d 이동 결과화면]
ls
현재 위치의 파일을 확인 할 수 있습니다.
[ls 조회 결과 화면]
sudo vi mysqld.cnf
설정파일로 접근합니다. i를 눌러 insert 모드로 변경합니다.
[기존]
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
[변경]
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
127.0.0.1 을 0.0.0.0으로 변경합니다.
#characterset 설정
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
#시간설정: UTC기준으로 한국시간이 +9:00 입니다.
default-time-zone="+09:00"
파일 맨 밑에 characterset과 timezone 설정을 추가합니다.
:wq!
esc 를 눌러 insert 모드를 종료 한 후 :wq! 명령어로 설정을 저장합니다.
sudo systemctl restart mysql
mysql을 재실행 합니다.
sudo apt install net-tools
포트번호를 확인 하기 위해 설치합니다.
netstat -tnlp
IP 주소 및 포트번호를 체크합니다.
[ IP주소 및 포트번호 조회 결과화면 ]
sudo mysql -u [사용자아이디] -p
추가한 사용자로 mysql에 접속합니다.
states
characterset 설정이 반영되었는지 확인하기 위해 mysql 설정상태를 조회 합니다.
[ mysql status 조회 결과화면 ]
select @@global.time_zone, @@session.time_zone,@@system_time_zone;
UTC기준으로 +9:00으로 설정되었는지 확인합니다.
[ mysql timezone 조회 결과화면 ]
select now();
now() 질의문으로 내 컴퓨터 시간과 동일하게 나오는지 확인합니다.
테스트용 데이터를 입력합니다.
# 예시 : CREATE DATABASE `test`;
CREATE DATABASE `스키마 이름`;
스키마를 생성합니다.
# 예시 : use test;
use 스키마 이름;
생성한 스키마로 데이터베이스를 변경 후 테이블을 생성합니다.
quit;
mysql을 종료합니다.
MySQL Workbench 연결
mysql workbench 좌측 상단 [Database] - [Manage Connections ..] 를 클릭합니다.
홈 화면 빨간색 박스 안 설정을 클릭해도 동일하게 [Manage Server Connections] 화면을 조회할 수 있습니다.
좌측 하단 [New]를 클릭합니다.
아래 내용을 입력합니다.
1. 연결 이름을 입력합니다.
2. AWS 퍼블릭 IPv4 주소를 입력합니다.
3. mysql 설정 시 등록한 사용자 아이디를 입력합니다.
4. 사용자 비밀번호를 입력한 후 OK를 클릭합니다.
5. 우측 하단 [Test Connection]을 클릭합니다.
[테스트 연결 성공 화면]
연결완료 후 Workbench에 접속할 수 있는 화면이 추가됩니다.
aws mysql server에서 만든 db를 조회 할 수 있습니다.
'Server > AWS' 카테고리의 다른 글
[AWS ubuntu] AWS EC2 스프링부트(SpringBoot)+메이븐(Maven) jar 로 프로젝트 실행하기 (0) | 2022.08.22 |
---|---|
[AWS ubuntu] 파일질라(FileZilla) 설치 및 jar 파일 전송(Mac) (0) | 2022.08.22 |
[AWS] AWS EC2 (Linux,ubuntu,centos) Timezone 설정 (KST) (0) | 2022.08.22 |
[AWS] AWS EC2 인스턴스 연결 - 인텔리제이(INTELLJ)/SSH 접속(Mac) (0) | 2022.08.19 |
[AWS] AWS EC2 인스턴스 연결 - 터미널로 SSH 접속(Mac) (0) | 2022.08.19 |