jwmsg

ubuntu에 mysql을 설치해보자

사실 설치는간단하다. 단지, 뭔가 설정을 해줘야 하겠지만…
최근 ubuntu 18.04 가 출시하면서 mysql 설정방식이 바뀌었다. 카더라

ubuntu에 mysql 설치하는 방법
$ apt-get install mysql-server
위 처럼 명령어를 치면, 자동으로 mysql 이 설치된다.

mysql 쉘에 접속할땐

$ mysql
를 치면 된다(설치된 ubuntu 내에서 치세요)

그럼 계정을 추가해보자.

mysql> create user '사용자명'@'접속IP' identified by '사용자암호';
여기서 사용자 명은 접속ID라고 생각하면 좋다.
필자는 ubuntu 라고 하겠다.
접속 IP는 해당하는 IP만 들어올 수 있다. 저기에 적은 IP만 해당 ID로 DB에 접근이 가능하다.
그런데, ‘%’ 를 쓰면 모든 아이피에서 접근할 수 있다 ㅎ (만약 다른 외부 IP로 접근을 원한다면, 이 글을 끝까지 읽길 바란다.)

이제 스키마(데이터베이스) 에대한 권한을 주자.
그전에, 당연히 스키마가 추가 되어야 한다. 그 내용은 좀더 아래에 명시한다.

mysql> grant all privileges on 스키마.테이블 to '사용자명'@'접속IP' identified by '사용자암호';
mysql> grant all privileges on 스키마.테이블 to '사용자명'@'접속IP'; 암호부분을 지워도 작동은 하는것 같더라.
여기서 스키마 부분에 *을 넣으면 모든 스키마 를 지칭한다. 마찬가지로 테이블에 * 을 넣어도 모든 테이블을 지칭한다.
그럼 모든 스키마와 테이블 권한을 줄땐
mysql> grant all privileges on *.* to '사용자명'@'접속IP';
이라고 할것이고,
dkdk라는 스키마에 모든 테이블 권한을 줄땐
mysql> grant all privileges on dkdk.* to '사용자명'@'접속IP';
가 될것이다.

스키마를 추가하는 방법!
mysql> create schema '스키마이름' 이렇게 해도 되고.
mysql> create database '스키마이름' 이렇게 해도 된다.
스키마 == 데이터베이스 이다.

엇! 그런데 외부에서 접속이 안된다. 왜일까?
$ netstat -nltp | grep mysql 을 쳐보자
listening 에서 127.0.0.1 을 볼 수 있을 것이다.
이거를 0.0.0.0 으로 만들어야겠죠? 이럴땐 아래와 같이 합니다 (ubuntu 18.04, mysql 버전 8이상)

/etc/mysql/mysql.conf.d/my.cnf
를 수정하자.

약 43번째 줄에,
bind-address = 127.0.0.1
bind-address = 0.0.0.0 으로 바꿔준다.
그리고 나서
$ service mysql restart
mysql 을 재시작 하면!!! 외부에서 붙을 수 있을 것이다.