관리 메뉴

Mini

[Linux] 원격으로 mysql 설치하기 && 로컬에서 원격으로 연결하기 본문

CS/Linux

[Linux] 원격으로 mysql 설치하기 && 로컬에서 원격으로 연결하기

Mini_96 2024. 8. 26. 15:08

* MySQL 설치 방법

 

1. MySQL 설치

 

sudo apt update
sudo apt install mysql-server

 

2. MySQL 포트 설정 (mysql 기본 포트는 3306임)

 

sudo ufw allow mysql

 

3. MySQL 실행

 

- MySQL 실행

sudo systemctl start mysql

 

- 서버 재시작시 MySQL 자동 재시작 설정 방법 (권장사항)

sudo systemctl enable mysql

 

 

4. root(관리자) 계정 비밀번호 재설정

 

- mysql 접속

 

sudo mysql -u root

 

- root 계정 비밀번호 설정

 

ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호';

 

- 변경된 비밀번호 적용하기

 

FLUSH PRIVILEGES;

 

 

5. 특정 계정 생성 및 접속 권한 변경

 

- user 테이블 업데이트 하기 위해 database 사용하기

use mysql;

 

- 생성하기 전 현재 계정들 확인

SELECT Host,User,plugin,authentication_string FROM mysql.user;

 

- 계정 생성하기

CREATE USER '생성할계정이름'@'%' identified by '비밀번호';

 

- 권한 할당

GRANT ALL PRIVILEGES ON *.* to '생성된계정이름'@'%';

 

- 적용하기

FLUSH PRIVILEGES;

 

- 생성 후 계정들 확인

SELECT Host,User,plugin,authentication_string FROM mysql.user;

 

 

 

- mysql 빠져나오기

exit

출처: https://jongsky.tistory.com/79 [시간의 농도:티스토리]

 

 

6. 외부 접속 허용 (외부에서 접속하기 위해서는 config 파일을 수정해주고 MySQL을 재시작해야 합니다.)

 

 

* vi 편집방법

https://technfin.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-VI-%EB%AA%85%EB%A0%B9%EC%96%B4-VI%EC%97%90%EB%94%94%ED%84%B0-%EA%B8%B0%EB%B3%B8-%ED%95%84%EC%88%98-%EB%AA%85%EB%A0%B9%EC%96%B4

 

리눅스 VI 명령어 - VI에디터 기본 필수 명령어

리눅스는 일반적으로 서버를 다루기 때문에 윈도우즈 OS와는 다르게 화면이 화려하지 않고 텍스트 기반의 형태로 되어 있습니다. 물론 리눅스도 윈도우즈와 비슷하게 GUI 환경을 설치하고 구동

technfin.tistory.com

 

- mysqld.cnf 내용 수정

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

 

- 최초 127.0.0.1에서 모든 접속을 허용하는 0.0.0.0으로 수정

# bind-address            = 127.0.0.1 
bind-address            = 0.0.0.0

 

 

 

 

- MySQL 재실행

 

sudo systemctl restart mysql

출처: https://jongsky.tistory.com/79 [시간의 농도:티스토리]

 

2.1. 열려 있는 모든 포트 조회

$ netstat -nap

 

2.2. Listen 중인 포트 조회

$ netstat -nap | grep LISTEN

 

2.3. 개방하려는 포트번호 상태 조회

$ netstat -nap | grep <포트번호>

만약 mysql 의 default port 인 3306 포트를 조회한다면 아래와 같다.

$ netstat -nap | grep 3306

 

 

2.4. 포트의 외부접근 허용

$ iptables -I INPUT 1 -p tcp --dport <포트번호> -j ACCEPT

-I: 새로운 규칙을 추가한다. 
-p: 패킷의 프로토콜을 명시한다. 
-j: 규칙에 해당되는 패킷을 어떻게 처리할지를 정한다. 

2.5. 내부에서 외부로 나갈 수 있는 포트 개방

 

만약 mysql 의 default port 인 3306 포트로 개방한다면 아래와 같다.

$ iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT

 

2.5. 포트의 내부에서 외부로 내보내기 허용

$ iptables -I OUTPUT 1 -p tcp --dport 9002 -j ACCEPT
$ iptables -I OUTPUT 1 -p udp --dport 9002 -j ACCEPT

출처: https://server-engineer.tistory.com/840 [임대리 개발일지:티스토리]

 

로컬에서 원격db에 연결된모습!