이전 글에서 RDS와 MySQL in EC2를 비교하였다. 이번 포스팅에서는 EC2 서버내에 MySQL을 설치해보자.
그리고 EC2 서버 구축은 예전에 포스팅을 했기에 바로 MySQL을 설치해보도록 하자
EC2에 MySQL install
일단, 루트 디렉토리에서
sudo apt update -> 우분투 OS의 업데이트
sudo apt install mysql-server -> MySQL 설치
MySQL을 설치하고 나서 확인하기 -> 루트 디렉토리로 이동
cd /
루트 디렉토리에서 ls -l 명령어를 사용하여 etc폴더 찾은 후 etc 폴더로 이동
cd etc
etc 폴더에서 ls 명령어 실행 후 mysql 폴더 찾은 후 mysql 폴더로 이동
cd mysql
mysql 폴더에서 ls 명령어 실행
ls -l
여기서 mysql.conf.d 디렉토리가 있다면 잘 기억해두자. 나중에 다시 등장하기 때문에 다른데다가 메모를 해두는 것을 추천!
이제 root유저로 mysql을 접속해보자
sudo mysql -u root -p
패스워드를 정하지 않은 경우에는 패스워드를 적는 란이 나온다. 패스워드를 터미널에 입력할 때 화면에 뜨지 않기 때문에 신중하게 입력하여서 세팅한다.
접속을 하게 되면 터미널이 mysql>
모양으로 바뀐다. 여기서
show databases;
를 입력하여 DB목록을 본다. 근데 여기서 반드시 show 명령어는 복수형태로 한다. 나중에 테이블 목록 확인할 때 show tables
할 때도 마찬가지이다.
DB목록을 보면 mysql을 포함한 4가지 DB가 나오는데 나머지 3개의 DB는 메타데이터이기 때문에 그냥 건드리지 않는 것이 좋다.
그래서 DB를 새로 생성하거나 메타데이터가 아닌 mysql
DB를 사용해도 된다. DB를 새로 만들고, DB를 사용하는 명령어는 구글링을 해서 직접 체득하는 것을 추천한다. 필자도 작업할 때 마다 헷갈려서 구글링을 자주한다.
mysql에서 여러 스키마들을 사용할 수 있는 권한을 가진 유저를 생성해본다.
필자는 위 사진 처럼 example
이라는 DB를 생성해 사용하려고 한다.
example
이라는 DB에 접속유저를 생성해보자
유저 생성은 create
명령어로 실행할 수 있다.
create user '유저명'@'localhost' --> 나만 접속
create user '유저명'@'%' --> 모든 사람이 접속 가능
일단, 현재 진행 중인 프로젝트 DB가 아니고 실습DB이므로 % 를 사용
그리고, 모든 사람이 접속이라는 의미는 현재 내가 하고 있는 실습목표와 같이 외부에서 같은 팀원이 접근할 수 있도록 반드시 % 로 외부에서 유저가 접근할 수 있게 해야 한다.
주소에 비밀번호 부여하기
하기 전에, 유저 목록이 추가가 잘 되었는지 확인을 해보자
user
테이블은 mysql
DB에 있다. mysql
DB로 가서 직접 만든 user의 정보를 확인한다.
유저 목록 명령어 출력은
select user, host from user;
직접 만든 'kihoon' 이라는 유저가 추가가 되어있는 것을 알 수 있다.
이제 비밀번호를 부여하려고 하는데, user가 있는 데이터베이스에서 해야하므로 example
DB로 가기전에 mysql
DB에서 작업을 하고 넘어가도록 하자.
create user 'kihoon'@'%' identified by '비밀번호';
이미 위에서 작업했기 때문에 'kihoon'을 지우고 다시 생성하면서 비밀번호를 생성해야 한다.
drop user 'kihoon'@'%';
flush privileges;
create user 'kihoon'@'%' identified by '비밀번호';
권한 부여하기
grant all privileges on . to 'kihoon'@'%'; --> 모든 권한부여
flush privileges; --> MySQL에 변경사항을 적용
권한부여 확인하기
show grants for 'kihoon'@'%';
현재 GRANT ALL 로 모든 권한이 kihoon 유저에게 부여된 것을 볼 수 있다.
권한 부여 상태를 확인하고 MySQL을 종료한다.
exit
그리고 이제 mysql.conf.d
폴더에 안에 있는 mysqld.cnf
파일에 저장된 세팅 내용을 변경하는 것은 다음 포스팅으로!