본문 바로가기
  • 포르쉐타고싶다
인포테인먼트 - development/linux

[linux] MySQL 포트 변경하기

by 지오ㄴl 2020. 4. 7.

자신의 운영체제에 MySQL을 설치하고 실행하면

기본적으로 3306의 포트번호가 할당된다.

 

하지만 여러개의 mysql db를 관리해야 하는 시점이 오면

mysql 서버에 여러개의 포트를 할당해야 한다.

 

예를 들어

필자는 서버 하나를 운영하는 동안 이 서버를 배포하고 난 뒤

같이 배포된 DB가 아닌 지속적인 백그라운드 개발, 테스트를 진행하기 위해

 

또 다른 테스트DB를 만들고 데스크톱과 연결해야 하는 상황이 생겼다.

(이 과정에서 dotenv를 이용하여 같은 서버에 대해 상황에 맞게 DB환경변수를 전환할 수 있는 환경을 구현하였다.

이 부분도 다음 포스팅에서 설명하려고 한다.)

 

기존에 로컬과 3306으로 연결되어 있었던 MySQL 데이터베이스는 AWS RDS에 올려놓은 DB서버였고

테스트 DB는 내 데스크톱의 Mysql서버를 설정해야 했기 때문에 MySQL 서버 설치를 같이 진행하였다.

MySQL의 기본적인 포트가 3306인 만큼 설치하는 과정에서 포트에 대한 언급이 없었고

설치된 이후 설정을 찾아 바꿔줘야 하는 과정을 거쳐야 한다.

 

전체적인 순서는 이렇다

1. MySQL 설치
2. mysql 명령어 기본 PATH에 설정
3. MySQL 환경설정 파일(my.cnf) 찾기
4. 환경설정 편집기로 들어가서 포트설정 구문 추가 및 저장
5. MySQL 서버 재실행

 

참고로 OSX 기준이다.

 

1. MySQL 설치

필자는 brew를 이용하여 설치를 진행하였고 기존의 Mysql 버전과 일치시키기 위해 5.7버전을 설치하였다.

localhost:~/ brew install mysql@5.7

 

마지막의 @5.7을 생략하면 가장 최신의 mysql이 설치된다.

 

2. mysql 명령어 기본 PATH에 설정

많은 사람들이 반복적으로 애를 먹는 PATH설정 차례이다.

1 에서 mysql을 설치하면 마지막에 아래 보이는 구문으로 통해 PATH에 추가하라는 권고가 나온다.

mysql 명령어를 치기 위해 mysql의 폴더까지 비집고 들어가 그 명령어를 치는 헛수고를 하지 않으려면 이 과정을 꼭 거쳐야 한다.

localhost:~/ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc

 

3. MySQL 환경설정 파일(my.cnf) 찾기

많은 사람들이 이 파일을 찾는데 많은 애를 먹는다.

본인도 열심히 구글링을 해보면서 명확한 답이 없어 겁을 먹었지만 바로 찾을 수 있었고

바로 수정이 가능했다.

 

localhost:~/ mysql --verbose --help | grep my.cnf

 

그리고 아래와 같은 결과물을 보여준다.

localhost:~/ mysql --verbose --help | grep my.cnf

order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

 

위의 명령어가 의미하는 것은

mysql이 실행되기 위해 환경설정 파일을 찾는데 위에 나열된 폴더 순서대로 my.cnf를 찾는다는 것이다.

즉 파일이 있을 수 있는 위치들을 나열해서 보여준다.(모두 있다는 것이 아니다!)

 

필자의 MySQL은 위의 위치중

 /usr/local/etc/my.cnf

 

에 my.cnf가 위치해있었다.

 

 

4. 환경설정 편집기로 들어가서 포트설정 구문 추가 및 저장

이제 3에서 찾은 my.cnf 환경설정 파일에 포트를 추가해주면 된다.

우선 my.cnf파일을 보면

 

localhost:~/ cd /usr/local/etc
localhost:~/usr/local/etc $ vi my.cnf

 

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
~
~

 

mysql의 기본 포트가 3306인 만큼 port에 대한 다른 설정은 없다.

우리가 원하는 port구문을 추가해주자

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
port = 3307			//추가
~
~

 

새로운 포트 3307을 배정해주고 

:wq

 

로 저장하고 나온다.

 

5. MySQL 서버 재실행

수정된 환경설정 my.cnf을 적용하기 위해선 mysql을 재실행시켜주어야 한다.

localhost:~/ brew services start mysql

//혹은

localhost:~/ brew services restart mysql

 

 

 

 

다음은 나를 새로운 mysql서버를 생성하게 만들었던 dotenv에 대해 설명하고자 한다.

반응형

댓글