본문 바로가기

정리/Database

Ubuntu서버에서 MariaDB 원격 접속하기

728x90

본 문서에서 다음의 내용이 담겨 있습니다.


1. Ubuntu 에서 MariaDB 설정 변경.


2. Squirrel SQL 을 이용한 접속.


3. 포트포워딩.


4. MariaDB Read 계정 생성.


5. MariaDB 원격 접속.








1. Ubuntu 에서 MariaDB 설치.






https://zetawiki.com/wiki/%EC%9A%B0%EB%B6%84%ED%88%AC_MariaDB_%EC%84%A4%EC%B9%98




ubuntu xenial(16.04) 에서 mariadb 설치하는 방법입니다.


참고하셔서 시키는대로 수행하시면 됩니다.




만약 이 설치 과정이 어려우시다면, 우분투 기본 패키지 설치부터 학습하셔야 합니다.






설치후 terminal 에서 Local MariaDB 접속은


$mysql -u root -p  


비번 입력후 , 접속


$USE dbschemaName;




으로 접속할 수 있습니다.








2. Squirrel SQL을 이용한 접속.




Squirrel SQL 이란 여러 Sql 접속 툴중 하나입니다.


SQL 접속 툴 중에는 SQL Developer, pgadmin, heidisql 등등이 있습니다.


사용해본적이 없다면 검색부터 하시는게 좋을 거 같습니다.




Squirrel SQL을 이용해 접속하기 위해선


2-1. Driver 등록, 2-2. Alias 등록, 2-3. 계정 접속 순으로 생각하셔야합니다.



2-1. Driver 등록

[그림1]

여기서


좌측의 Drivers를 선택하시고

+ 버튼을 선택하시면 새로운 드라이버 설정 화면으로 넘어갑니다.

SquirrelSQL은 Java 위에서 동작하기 때문에 접속 DB 관련 Jar 파일이 있어야 합니다.

mariadb는  https://downloads.mariadb.org/connector-java/2.3.0/

참고해주세요.

접속 정보는 위와 같이 등록하시고


유의할 사항은 Example URL 에도 일부 입력을 하셔야 하고

Java Class Path 대신 Extra Class Path에서 다운받은 Jar 파일 위치를 지정해주시면 됩니다.

반드시 Class Name도 적으셔야 합니다. (지정한 Jar 파일에서 해당 CLass Name 을 찾아 접속에 활용합니다.)


Example URL 에 들어갈 정보는  mariaDB같은 경우에는

jdbc:mysql://서버ip:3306

이정도로 축약되겠습니다.



2-2. Alias 등록


[그림1]로 돌아가서 이젠 Alias 로 들어가서 + 버튼을 누릅니다.


다음은 Change 이지만 크게 다르지 않습니다.

아래처럼 필요한 정보를 등록합니다.

Driver는 2-1. 에서 등록한 이름을 찾아서 넣으시면되고.

URL은 jdbc:mariadb://서버ip:3306/mysql?user=우분투계정명&password=우분투비번

User Name/Password 는 MariaDB의 계정명과 비번을 넣으시면 됩니다.

계정 생성은 본 포스팅의 4.을 참고하시면 됩니다.



2-3. 계정 접속

위처럼 등록을 하시고 나면 계정 접속을 해야하는데

그건 Alias 에서 해당 접속 대상을 더블클릭하셔서 Connect 하시면 됩니다.

그러면 [그림1]의 우측 화면처럼 접속이 됩니다.




3. 포트포워딩.

위 까지는 기본적인 내용이고요 이제 포트포워딩을 설명드리려 합니다.

뜬금없지만 이 내용은 기본중의 기본이라 반드시 말씀드려야 합니다.

내가 만든 DB 서버를 외부망 그러니까 내폰이나... 친구가 접속하기 위해선 포트포워딩을 해야합니다.


포트포워딩은 관련 포스트가 많기 때문에 간단히 소개하고 검색 키워드를 드리겠습니다.


포트포워딩이란 외부 접근을 허용하기 위해 내가 만든 서버의 실제 외부 접속 IP/PORT 를 내 서버가 있는 AP의 접속 정보와 매핑을 하는 작업이라고 보시면 됩니다. 비유를 하자면 가족내 나의 애칭과 외부에서의 애칭을 매핑하기 위해 하는 작업이라고 보시면 됩니다. (애칭이 여러 개인 나라는 사람이 존재해야겠죠?)   다시 원래도 돌아가면 포트포워딩을 하려면 내 서버가 있는 AP 즉, 와이파이에서 설정을 해주셔야합니다. 따라서 와이파이의 업체, 통신사, 기기 버전에 따라 세팅하는 절차가 다르다고 볼 수 있습니다.  따라서 검색시에는 "olleh 포트포워딩"  이런 식으로 검색하시면 됩니다.



4. MariaDB Read 계정 생성.

https://zetawiki.com/wiki/MySQL_%EC%9D%BD%EA%B8%B0%EC%A0%84%EC%9A%A9_%EA%B3%84%EC%A0%95_%EB%A7%8C%EB%93%A4%EA%B8%B0


이 내용도 설명이 잘되어 있네요.

CREATE USER readonlyuser;
SET PASSWORD FOR readonlyuser = PASSWORD('P@ssw0rd');
GRANT SELECT ON *.* TO readonlyuser;


이 글에서 보면 

line 1: 계정 생성 후

line 2: 비번 설정

line 3: *.* 는 모든 DB, 모든 Table 에 대해  readonlyuser 계정으로 SELECT 권한을 주는 명령어 입니다.

GRANT 권한 ON 데이터베이스.테이블 TO '아이디'@'호스트' IDENTIFIED BY '비밀번호'


위처럼 주는 것도 가능합니다. 호스트에는 접속하려는 사람의 특정IP 또는 % 로 입력하여 모두 접속 가능하도록 할 수 있습니다.



5. MariaDB 원격 접속.

MariaDB 원격 접속을 위해선 결국 위에 과정이 다 선행되어야 합니다.

그럼에도 불구하고 접속이 안된다면


:/etc/mysql 위치에서 $ grep -r 'bind-address' ./*  명령어를 쳐서

어느 파일에 있는 지 확인하시고 bind-address를 주석처리하시면 됩니다.

저는 sudo gedit mariadb.conf.d/50-server.cnf 

여기를 수정했습니다.
그 후 sudo service mysql restart
입력하여 db를 재실행합니다.
그러면 접속이 가능할 겁니다.


문제가 발생하는 부분이 있다면 댓글 남겨주시면 답변드리겠습니다.