티스토리 뷰

tech/Backend

MySQL Installation with MacOS

drillandrill 2023. 3. 12. 19:29
MacOS에서 MySQL 설치와 root 초기 비밀번호 설정 과정을 정리한 문서
OS: Ventura 13.2.1
CPU: Intel

MacOS, brew install mysql

  1. brew update or brew upgrade
    • brew upgrade = update + upgrade를 같이 처리한다.
    • upgrade는 대상 항목을 업데이트하면서 관련 버전을 업그레이드 해준다.
  • 오랜만에 사용하는 경우가 있을 수 있으니 업데이트 확인 후 진행하는 것이 좋다. brew 실행자체가 실패할 수 있기 때문임
    brew update 및 upgrade를 누락하고 하는경우 다음과 같은 오류를 확인할 수 있다.
    나의 경우에는 cask는 아니었고 core shallow clone 오류가 확인돼서 아래에서 알려주는 git fetch core 명령어를 실행했다.
    이게 발생하는 이유는 homebrew는 깃 기반이라고 문서에 명시되어 있는데 깃 싱크가 안맞아서 발생하는 오류이다.
    업데이트 전에 깃으로 관련 업데이트 항목을 미리 체크해서 싱크를 맞춰야 한다.
     Error:
      homebrew-core is a shallow clone.
      homebrew-cask is a shallow clone.
    To brew update, first run:
      git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
      git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
    These commands may take a few minutes to run due to the large size of the repositories.
    This restriction has been made on GitHub's request because updating shallow
    clones is an extremely expensive operation due to the tree layout and traffic of
    Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
    automatically to avoid repeatedly performing an expensive unshallow operation in
    CI systems (which should instead be fixed to not use shallow clones). Sorry for
    the inconvenience!
  1. brew cleanup
    • 업데이트 후에 cleanup을 해주면 좋다. 왜냐면 업데이트하면서 deprecate 된 항목이 있을 수 있어서 이 명령어를 통해 제거할 수 있다.
  2. brew install mysql
    • 특정 버전을 사용하려면 brew install mysql@version 으로 기입하면 됨
      완료하면 다음과 같은 내용이 확인된다.
==> Fetching mysql
==> Downloading https://ghcr.io/v2/homebrew/core/mysql/manifests/8.0.32
Already downloaded: /Users/user/Library/Caches/Homebrew/downloads/86baf5da15e3e54f1fb5a1ecba7990f44cf642194348bba25fa21ff4a95f205b--mysql-8.0.32.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/mysql/blobs/sha256:133aa61d00ae
Already downloaded: /Users/user/Library/Caches/Homebrew/downloads/6dbb068d861b3d806e4cf320a1ecdcdfe7880f46e81a771d5c19fa94358d7a3e--mysql--8.0.32.ventura.bottle.tar.gz
==> Pouring mysql--8.0.32.ventura.bottle.tar.gz
Warning: The post-install step did not complete successfully
You can try again using:
  brew postinstall mysql
==> Caveats
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
==> Summary
🍺  /usr/local/Cellar/mysql/8.0.32: 317 files, 297.6MB
==> Running `brew cleanup mysql`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

Root Password Initializer

  1. mysql_secure_installation
    • 원래라면 이 명령어 실행 시 초기비밀번호 설정이 완료되어야 하는데 되지않음, 원인 파악은 아직 제대로 못했음
Securing the MySQL server deployment.

Enter password for user root: 
mysql ~ % mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
// mysql을 안전모드로 실행한다.
sudo mysql.server start --skip-grant-tables

// root 계정으로 비밀번호 입력없이 접속한다.
sudo mysql -u root
mysql> update user set authentication_string=null where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
	- 이 부분에서 버전마다 다르기 때문에 버전에 맞는 명령어로 실행해야한다.
flush privileges;
exit

// mysql 재시작 후 다시 접속한다.
mysql.server restart


// 비밀번호 변경
mysql> alter user 'root'@'localhost' identified with caching_sha2_password by 'your password';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

// mysql 재시작
mysql ~ % mysql.server restart
Shutting down MySQL
. SUCCESS! 
Starting MySQL
. SUCCESS! 

// 변경한 비밀번호로 접속
mysql ~ % mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32 Homebrew

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

 

이틀 간 맥OS mysql 설치하는데 시간을 생각보다 많이 쏟았다🥲
회사용 맥북은 m1 pro인데 그 때는 설치하면서 이런 문제가 없었던 것으로 기억하는데 어쩐지 오랜만에 개인 맥북(intel cpu)으로 mysql 접속하려니 계속 access denied가 발생했고,
예전에 설치했던 그 당시에도 접속이 안돼서 h2 db로 우선 사용했던 것 같다.
mysql_secure_installation 설정 자체가 mariadb를 연결해야 사용할 수 있는 것인지 확인중이다.
처음에는 macOS에서만 발생하는 문제인가 라고 생각했는데 다시 생각해보니 OS문제와는 별개의 문제인 것 같아서 확인중이며, 정리되는대로 수정할 예정이다.

 

  •  
최근에 올라온 글
«   2024/11   »
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
글 보관함