리팩터링 - 개발 환경 구축 (2) MySQL 설치 및 환경설정

안녕하세요 🙃!

이번 포스팅에서는 지난 시간에 구축한 우분투 서버에 MySQL을 설치하고, 외부에서도 우분투 서버의 MySQL에 접속할 수 있도록 설정 해보겠습니다.

📗 MySQL설치 & 환경설정

1️⃣ MySQL설치

sudo apt-get update

다음 명령어로 운영체제에서 설치 가능한 패키지 리스트들을 업데이트 합니다.

sudo apt-get install mysql-server

다음 명령어로 MySQL을 설치합니다.

다음과 같은 질문에 Y 로 대답해주세요.

설치가 완료되면 mysql --version 을 입력하여 설치 된 mysql의 버전을 확인합니다.

2️⃣ MySQL접속

mysql -u root -p

다음 명령어로 mysql 에 접속합니다.

다음 명령어를 입력했을 때, ERROR 1698이 발생했습니다. 에러를 해결하기 위해 MySQL ERROR 1698 (28000): 에러 해결 을 참고하였습니다.

sudo mysql -u root -p

sudo명령어root 권한을 이용하여 mysql에 접속합니다. 초기에는 비밀번호가 설정되어 있지 않기 때문에 Enter password를 return키를 입력하여 넘어갑니다.

Use mysql;

mysql 데이터베이스의 사용을 선언합니다.

SELECT User, Host, plugin FROM mysql.user;

user테이블에서 User, Host, plugin 목록을 조회 합니다.

위의 그림과 같이 root의 plugin이 auth_socket으로 되어있습니다.

UPDATE user SET plugin = 'caching_sha2_password' WHERE User='root';

위의 명령어를 사용하여 root의 plugin을 caching_sha2_password로 변경합니다.

SET PASSWORD FOR 'root'@'localhost'='비밀번호';

root계정의 비밀번호를 설정합니다.

FLUSH PRIVILEGES;

변경 된 정책을 반영합니다.

exit;
mysql -u root -p

종료하고 다시 처음의 방식으로 접속하면 error없이 접속 됩니다.

3️⃣ 인바운드 설정


※위의 화면은 설정 후 의 모습 입니다※

네트워크 및 보안 -> 보안그룹 -> 체크박스 체크 -> 인바운드 규칙 -> 인바운드 규칙 편집

다음 그림과 같이 설정하고 규칙 저장 을 눌러줍니다.

※인바운드 설정 후, ssh으로 접속할 때 timed out이 발생하며 접속이 안되는 경우에는 여기👈를 참고 하시길 바랍니다. ※

4️⃣ 원격접속 허용

원격접속을 허용하려면 vi 에디터로 mysqld.cnf 파일을 일부 수정 해야 합니다.

1) 다음 명령어로 root 권한을 부여합니다.

sudo su 

2) 다음 명령어로 mysqld.cnf파일이 있는 곳 으로 이동합니다.

cd /etc/mysql/mysql.conf.d

3) vi 에디터로 mysqld.cnf 파일을 실행합니다.

vi  mysqld.cnf

4) bind-address를 찾아 0.0.0.0 으로 변경합니다. vi편집기 명령어 참고 _※

i     #편집 모드
:wq    #저장후 vi 종료

5) 외부접속용 계정을 생성하고, 필요한 권한을 줍니다.

CREATE USER 'user_이름'@'%' IDENTIFIED BY '비밀번호'
GRANT ALL PRIVILEGES ON *.* TO 'user_이름''@'%' WITH GRANT OPTION;

6) MySQL 서버를 재시작 합니다.

sudo service mysql restart

7) 로컬에서 우분투 서버의 MySQL에 접속해봅니다.

cd /usr/local/mysql/bin

mysql 실행 경로로 이동

./mysql -u user_이름 -p --port 3306 --host 호스트주소(ip)

로컬에서 우분투 서버의 MySQL에 원격으로 접속


mysql> 이 나타난다면 접속 완료 !

※ 홈 디렉토리에서 mysql을 바로 실행 할 수 있다면 아래의 명령어 사용

mysql -u user_이름 -p --port 3306 --host 호스트주소(ip)

📝 추가 글📝

EC2 인스턴스 환경에서 MySQL을 사용하는 방법은 다음과 같다.

1. EC2 에 DB를 직접 설치하여 서비스
이번 포스팅과 마찬가지로 우분투서버에 직접 MySQL을 설치하여 서비스 하는것

2. RDS를 이용해 서비스

  • RDS는 아마존 관계형 데이터베이스 서비스(Amazon Relational Database Service) 또는 아마존 RDS(Amazon RDS)는 아마존 웹 서비스(AWS)가 서비스하는 분산 관계형 데이터베이스
  • RDS는 EC2와 함께 사용하며 아마존에서 DB의 설정, 운영, 백업 등의 기능을 편하게 이용할 수 있게 해주는 EC2와 분리된 DB전용서버

RDS을 사용한다면 추가금액을 내야하기 때문에 1번 방법으로 진행하자😓.

좋은 웹페이지 즐겨찾기