Notice
Recent Posts
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

Dev_R

mac OS에서 터미널을 이용한 mysql 설정 및 외부 접속 방법 본문

Server/Database

mac OS에서 터미널을 이용한 mysql 설정 및 외부 접속 방법

Dave(데이브) 2020. 8. 31. 02:31
반응형

이번에 mysql을 새로 설치하면서 설정했던 부분들을 기억하기 위해서 글을 적습니다.

 

우선 설치는 brew를 이용해 간단하게 설치했습니다. 

 

brew install mysql

 

 

 

위 명령어를 통해 쉽게 설치를 진행 할 수 있었고

이후 아래 명령어를 이용해 설치를 확인할 수 있었습니다.

 

brew services list

 

 

 

 

이 다음 기초 설정을 해주어야하는데, 그러기 위해 우선 mysql을 실행시켜줍니다.

 

brew services start mysql

 

 

 

 

이다음 설정 명령어를 아래와 같이 입력합니다.

 

mysql_secure_installation

 

그 다음 여러 질문이 나오는데

 

1. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No"

yes = 복잡한 규칙의 패스워드 이용 ( q1w2e3r4와 같은 조합형 비밀번호 사용해야함)

no = 간단한 규칙의 패스워드 이용 (1234와 같은 간단한 비밀번호 사용 가능)

 

저는 n를 선택했습니다.

 

2. New password

앞으로 사용할 root의 비밀번호를 입력하세요

 

3., Remove anonymous users? (Press y|Y for Yes. any other key for No)"

사용자 설정을 묻는 질문으로 yes 또는 No를 입력해주세요.

 

Yes - 접속하는 경우 "mysql -uroot"처럼 -u 옵션 필요

No - 접속하는 경우 "mysql"처럼 -u 옵션 불필요

 

4. Disallow root login remotely? (Press y|Y for Yes, any other key for No)

root계정의 외부 접속에 대한 질문입니다. 이부분은 보안을 위해 no 선택해주세요

 

5. "Remove test database and access to it? (Press y|Y for Yes, any other key for No)"

Test 데이터베이스를 설정하는 질문입니다.

 

Yes - Test 데이터베이스 제

No - Test 데이터베이스 유지

저는 Yes로 설정하였습니다.

 

6. "Reload privilege tables now? (Press y|Y for Yes, any other key for No)"

변경된 권한을 테이블에 적용하는 설정에 대한 질문입니다.

 

Yes - 적용시킨다.

No - 적용시키지 않는다.

 

해당 질문은 무조건 Yes 하세요

 

 

 

 

 

 

 

이후 세팅이 완료되고 아래 명령어를 이용해 mysql db에 접속합니다.

 

mysql -uroot -p

 

엔터를 친다음 비밀번호를 묻는 질문이 나타나면 2번째 질문에서 등록한 비밀번호를 칩니다

 

이후 외부접속을 위한 새로운 유저 생성과 설정변경을 진행하겠습니다.

 

use mysql;

create user 'userId'@'%' identified by 'password';

grant all privileges on *.* to 'userId'@'%' with grant option;

 

 

** 만약 오류가 난다면 아래 명령어 실행후 다시 시도

CREATE USER 'root'@'%' IDENTIFIED BY '이전에설정한root password';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

 

 

 

 

 

 

 

이후 my.cnf 파일 수정을 통해 외부접속을 허용해야합니다.

아래 명령어를 통해 my.cnf파일의 위치를 찾으세요

 

mysql --verbose --help | grep my.cnf


 

 

 

제 맥의 경우  /usr/local/etc/my.cnf의 위치에 있었습니다.

 

vi /usr/local/etc/my.cnf

를 통해 vi에디터로 해당 파일을 열고

bind-address = 127.0.0.1앞에 #을 붙여 주석처리를 해주고 저장합니다.

그다음 mysql을 재시작해줍니다.

 

 

 

brew services restart mysql

 

이제 외부에서 접속이 가능합니다.

 

 

 

 

 

 

**

혹시 mac에서 sequel pro를 사용할 경우

1번 질문이었던 Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No"에서 no를 선택했었다면 MySQL의 최신 인증 플러그인에서 연결시 사용하는 암호화 방식인 caching_sha2_password의 문제로 인해 127.0.0.1에 연결이 안될것입니다.

 

그렇기 때문에 새로 만들었던 유저의 아이디가 test일때 아래명령어를 통해 caching_sha2_password로 변경하여 복잡한 비밀번호로 설정을 변경할 수 있습니다.

 

ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'abc1234';

 

이렇게하면 아이디 test, 비밀번호 abc1234인 유저로 외부에서 접속 할 수 있습니다.

반응형

'Server > Database' 카테고리의 다른 글

[Linux/Ubuntu] Redis 설치 및 실행  (0) 2021.05.12
Comments