Simple&Natural

MYSQL workbench 이용시 MYSQL 설정방법 본문

네트워크&서버

MYSQL workbench 이용시 MYSQL 설정방법

Essense 2019. 12. 13. 13:48
728x90

mysql 데이터베이스를 관리할 수 있는 방법은 다양하다.

리눅스 환경에서 터미널로 접속하거나

GUI를 제공하는 다양한 관리 툴을 사용하는 방법이 있다.

물론 전자보다는 후자가 사용자들에게 익숙하고 간편하기 때문에 더 선호되는 경향이 있다.

최근까지 아무 생각없이 phpmyadmin을 관리 툴로 쓰고 있다가

요즘 누가 phpmyadmin을 쓰냐고 지적받은 일이 있어서 기억해두고 있었다... (ㅠㅠ ;)

적당한 다른 툴이 없을까 알아보다가 MYSQL에서 공식적으로 제공하는 Workbench라는 것을 알게 되었다.

이 개발 쪽에서 공부하다 보면 우리가 평소에 설치하던 게임이나 기타 응용프로그램들이 얼마나 친절한지 깨닫게 된다.

개발관련 툴을 설치하다 보면 설치부터가 시작이기 때문...

환경변수 설정부터 기타 다른 세팅을 많이 해줘야 한다. 그리고 이게 생각보다 어렵고 시간을 많이 잡아먹는 경우가 부지기수.

무튼 이러한 연유로 Workbench를 설치하게 되었음.

설치자체는 비교적 간단하다.

공식 홈페이지에 가보면 Windows용으로 다운받아 설치할 수 있다.

물론 그 전에 의존성 라이브러리[?] 비슷하게 먼저 설치해둬야 하는 게 있는데

NET Framework와 visual c++ 어쩌고를 우선 설치한 후에 Workbench를 설치해야 한다. 아니면 오류가 뜬다.

설치 자체는 오류없이 진행되었다면 이제부터 시작...

내 경우에는 외부 호스팅 업체에서 아파치 서버와 mysql을 구동하고 있다.

이때 초기 세팅값은 보통 로컬에서만, 즉 데이터베이스와 서버가 있는 컴퓨터에서 접속했을 경우에만 이용이 가능하게 되어있다.

내 경우에는 원격으로 접속하려고 하는 것이므로(집에서 호스팅 서버로 접속하기 때문) 이 세팅값을 바꾸어줘야 연결이 가능하다.

우선 서버는 리눅스, 집은 윈도우 환경임을 밝혀둔다.

먼저 해야할 것은 서버 쪽 mysql의 설정을 바꾸어주는 것이다.

내 경우 /etc/mysql//mysqld.conf.d 경로에 환경설정을 할 수 있는 파일이 있다.

이 경로는 각자의 버전이나 환경에 따라 다를 수 있으므로 유의하기 바람.

터미널에 vi /etc/mysql/mysqld.conf.d/mysqld.cnf 를 입력하여 편집 창으로 들어간다.

port번호는 보통 3306으로 되어 있으나 맞는지 한번 확인해 보면 된다.

여기서 바꾸어 줘야 할 것은 bind-address라고 되어 있는 부분인데 mysql이 허용하는 IP주소라고 생각하면 된다.

예를 들어 이 값은 디폴트로 127.0.0.1이라고 되어 있는데 이는 로컬 호스트를 의미하므로 로컬에서만 mysql에 접근할 수 있다는 것을 의미한다.

이 값을 0.0.0.0으로 바꾸어 주면 mysql이 모든 네트워크에서 연결 요청을 받을 수 있게 된다.

그리고 이는 네트워크 상에서만 설정을 마친 것이고 mysql 자체의 설정도 해주어야 한다.

mysql -u root -p 를 입력하여 데이터 베이스에 접속한다.

SELECT Host, User, authentication_string FROM mysql.user;

을 입력하여 현재 DB상에 저장되어 있는 관리자 계정 및 네트워크 주소를 확인한다.

아마 Host 상에 localhost나 127.0.0.1로만 되어있을 텐데 이는 원격에서 접속할 수 있는 계정이 없음을 의미한다.

이때 외부 접속을 허용하는 방법은

1. 모든 IP 를 다 허용하거나,

2. 특정 IP대역 만을 허용하거나,

3 .특정 IP 1개 만을 허용할 수 있다.

내 경우에는 집에서만 외부 접속을 한다고 가정했으므로 집의 공인IP와 관리자 계정 및 비밀번호를 이곳에 등록해주면 된다.

다음과 같이 입력해준다.

INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES (

'IP주소','root',password('패스워드'),'','','');

GRANT ALL PRIVILEGES ON *.* TO 'root'@'IP주소';

FLUSH PRIVILEGES;

쿼리가 정상적으로 입력되었다면 아마 이제 접속이 가능할 것이다.

 

 

참고자료

https://zetawiki.com/wiki/MySQL_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9

 

https://stackoverflow.com/questions/3552680/bind-address-and-mysql-server

728x90