[우분투, 민트] MariaDB 원격접속 (외부접속) 허용하기
MariaDB는 mysql과 거의 동일한 소스코드를 기반으로 하며, GPL v2 라이센스를 따르고 있는 관계형 데이터베이스시스템입니다. 대부분의 경우 외부에서 DB로 직접 접속하는 일은 거의 없지만 클라이언트 프로그램에서 원격서버로 접속해서 각종 데이터를 조회하거나 변경하기 위해서는 외부에서 접속할 필요가 있습니다. 이럴때 MariaDB를 외부에서 접속하기 위해서는 어떤 절차를 거쳐 접속이 가능하도록 설정하는지 알아보겠습니다.
[mysqld] port = 3306 <- 원하는 포트번호로 변경
굳이 포트번호를 변경할 필요는 없지만 알려진 포트번호를 사용하는 것보다 확실히 보안적인 측면에서는 낫다고 생각합니다.
[mysqld] . . . bind-address = 127.0.0.1 <- 맨 앞에 # 표시를 붙여서 주석처리 혹은 0.0.0.0 으로 처리하면 됩니다. #bind-address = 127.0.0.1
sudo service mysql restart
1. 새로운 데이터베이스를 생성합니다.
$ mysql -u root -p MariaDB [(none)]> create database test;
2. 위에서 생성한 데이터베이스를 사용할 사용자를 생성합니다.
MariaDB [(none)]> create user 'test'@'%' identified by 'password';
3. 사용자에게 권한을 부여하고 reload하여 사용자와 권한을 데이터베이스에 적용 바로 사용할수 있게 해줍니다.
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost' 위의 형식으로 맞추어 사용자와 Database를 지정하여 원격으로 접속할 수 있도록 권한을 줍니다. MariaDB [(none)]> grant all privileges on test.* to test@'%'; MariaDB [(none)]> flush privileges;
4. flush privileges는 쉘 상태에서도 실행할 수 있습니다.
$ mysqladmin -u root -p reload
5. mysql 서비스를 재시작합니다.
$ sudo service mysql restart
맨 처음에 설정한 포트를 공유기나 방화벽에서 풀어줘야 합니다. 보통 일반적으로 공유기만 사용하신다면 3306포트나 설정하신 포트를 포트포워딩 해주시면 되고, 사설 방화벽을 사용하실 경우 네트워크 관리자에게 문의하시면 되겠죠 ?
이제 외부 접속용 클라이언트 프로그램을 시작하면 접속이 됩니다. 🙂