본문 바로가기
don't forget

[TIL]05 mac에 mysql 설치하기 (homebrew)

by SHplusR 2023. 6. 8.

사실 난 이미 설치한적이 있다...

하지만 .... 비밀번호를 까먹었고, 이를 수정하려 명령어를 치고 들어가자 무한오류가 뜨는것을 보고 그냥 새로 깔자고 생각했다.

 

내개 생겼던 오류는 아래와 같다.

우선  brew install mysql  명령어를 치면, 짧게는 몇초 길게는 몇분 뒤 아래와 같은 메세지가 뜨며 install이 완료된다.

We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

To connect run:
    mysql -u root

To start mysql now and restart at login:
  brew services start mysql
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/mysql/bin/mysqld_safe --datadir=/opt/homebrew/var/mysql
==> Summary
🍺  /opt/homebrew/Cellar/mysql/8.0.33_1: 318 files, 300.0MB
==> Running `brew cleanup mysql`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

여기서 중요한 내용은, 

mysql이 root 비번 없이 설치되었고, 이를 수정하고 싶으면

mysql_secure_installation을 입력.

그냥 접속만 하기 위해서는

mysql -u root를 입력..

 

근데 내 경우에는, 삭제후 재설치했음에도 불구하고 

mysql_secure_installation 입력시 >> Access denied for user 'root'@'localhost' (using password:yes)

라고 나오고

mysql -u root 입력시 >> enter를 누르면 Access denied for user 'root'@'localhost' (using password:no)

라고 나왔다... 서치를 약 2시간동안 했는데 다들 나와 경우가 달랐다.

사실 더 많은 오류가 발생했다.(무한오류발생, 서버가 이미 시작되었다고 해놓고 brew status하면 mysql은 none인 상황 등..)

 

아래는 내 해결방법이다.

---------------------------------------------

 

1. brew uninstall mysql 

>> mysql 을 삭제한다.

 

하지만 이 명령어만 친다고 mysql 이 완전히 삭제되는것이 아니다. 

Finder > 찾기를 통해 mac내에 있는 모든 mysql을 삭제한다.

2. 터미널을 통해 모든 mysql관련 파일을 삭제한다.

 

sudo su rm -rf /usr/local/mysql*

brew list...등

>> 이전에는 brew list만 확인하고 없다고 생각해서 그냥 넘어갔는데, 정말 놀랍게도...local에 어딘가에 숨어있는 mysql을 삭제하지 않아서 계속 이런일이 있던것같다. 저렇게 모든 파일을 다 삭제하니 해결이 되었다.

 

--------------------------------------

 

이후 모두가 아는것처럼, 다시 mysql을 설치한다.

 

1. brew install mysql

2. mysql_secure_installation 

 

 

악!!!!!! 드디어 나왔다..............

드디어 새 비밀번호를 설정할 수 있다......

진행하다보면 y/n로 대답해야하는 설정들이 나오는데 해당 내용은 아래와 같다.

  • VALIDATE PASSWORD plugin? : '가이드' 대로 비밀번호를 설정할것인가?

>> 난 no 했다. 검색해보니 내용이 꽤나 길어서....또 까먹을것같았다...

  • Remove anonymous users? : 익명사용자를 삭제할것인가?

>> 난 yes했다. 문제 생기면 나중에 추가할 수 있겠지

  • Disallow root login remotely? : localhost 외 ip에서 root 아이디로 접속가능을 허락할지? 

>> 난 no 했다. yes하면 원격접속이 안되니까

  • Remove test database and access to it? : test db를 삭제할것인가?

>> 난 yes했다. 어차피 필요없음

  • Reload privilege tables now? :

>> 난 yes했다. 권한변경한건없지만 혹시 모르니

 

 

찾다가 봤는데 좀 웃겼다.......

https://wayhome25.github.io/mysql/2017/03/16/mysql-01-install/

 

MySQL 01. MySQL 설치 및 환경설정 · 초보몽키의 개발공부로그

MySQL 01. MySQL 설치 및 환경설정 16 Mar 2017 | MySQL 데이터베이스 생활코딩 - MySQL 데이터베이스와 MYSQL 데이터베이스란 : 데이터의 저장소 데이터베이스의 종류 관계형 데이터베이스 nosql 데이터베이

wayhome25.github.io

에서 캡쳐함...