MySQL 설치, 초기 진입, 비밀번호 설정

심채원·2023년 11월 10일

develop-developer

목록 보기
2/3

간단 간단 초간단…하지만은 않음..
정리한 글은 초간단인데 내 한달의 3/4를 앗아간 mysql이여!!!!!!

💡 이전에 Naver Cloud - cent OS에서 mysql을 다운받으면서, 이전에 mysql 5 버전만 쓰다가 8버전을 다운받게 되었다.

그 과정에서 5버전과 8버전의 차이점을 인지하지 못해 몇 가지 어려움을 겪었는데, 그 중에서도 초기 진입 과정에 변경 사항이 있었다. 다음은 당시 문제를 겪으며 노션에 작성했던 글이다.

여러 OS를 사용해서 mysql 버전 8 설치의 과정을 겪으면서 2가지 경우를 모두 다 겪었는데 (1) 초기 비밀번호가 있었던 상황(2) 소켓 인증 방식으로 설정되어 있던 상황 이 있었다.

mysql 처음 설치 시

Mysql 8.0 버전 이전에는 초기 패스워드가 "" 이기 때문에 패스워드 입력 줄에서 엔터를 입력하여 최초 로그인이 가능
하지만 mysql 8.0 이상에서는 초기 패스워드가 랜덤으로 정해지기 때문에, /var/log/mysqld.log 파일에서 정해진 패스워드를 확인하고 진입해야 함….

Access denied 에러만 한 수만번 본 듯…;;;

하지만 m1에서 mysql 설치하며, `/var/log/mysqld.log` 파일을 찾지 못했고, `mysql -u root` 명령어를 사용해보았더니 진입이 가능했다.

👩‍💻흥탐

  • 진입 후 이전에 찾아본 위 글을 작성했던 것이 생각나서 비밀번호를 저장하는 칼럼을 확인해보았다. 그런데 authentication_string이 비어있다.
  • 위 글 작성했을 때도 동일하게 확인했는데 그 때는 비밀번호가 있었던 것 같은데,,, 넘모 어렵다… 그냥 SQL문 사용보다 설치와 초기설정이 더 어려운 이유는 뭘까..?

소켓 인증 방식에 대해서는 이번 m1 상황과 동일하기 때문에 이 포스팅에서 정리하도록 하겠다..


설치

  • 이전에 M1 초기 설정시 다운 받은 brew를 이용해서 설치가 가능하다.
brew install mysql;
  • version8.0이 다운된다.
  • mysql 을 다운받고, mysql 서버를 켜준다.
    • mysql 프로그램 실행 명령어
      brew services start mysql
      또는
      mysql.server start
  • mysql 서버를 킨 후에, 서버에 진입하기 위해서는 다음의 명령어를 친다.
    mysql -u root
    또는 
    sudo mysql
  • sudo mysql로 진입 시 위 명령어 입력 후, 맥북의 user 비밀번호를 입력해주어야 한다.
  • 본래 mysql 에 진입하는 mysql -u root -p 명령어를 칠 경우, access denied 에러가 발생한다.
    • mysql의 접속 인증 방식이 기본으로 소켓 인증 방식으로 설정되어 있기 때문에 password를 사용해서 진입할 수 없고, 위 명령어를 사용해야 한다.
    • 이후 mysql 소켓 인증 방식을 password 인증방식으로 변경해보자.

mysql 접속 인증 방식 수정하기

mysql에 접속한 후 이용할 데이터베이스를 선택해야 한다.

schema mysql은 설치된 mysql의 설정들을 저장하는 스키마이다.

  • 접속 인증 방식을 변경하기 위해서는 mysql 데이터베이스에 접근해야 한다. (1)
  • 그리고 user 테이블에 있는 사용할 계정의 접속 인증 방식을 변경해주고 (2), 변경한 권한을 반영할 수 있도록 하자. (3)
 
 USE mysql;  -- (1)
 UPDATE user SET plugin='mysql_native_password' WHERE user='root';  -- (2)
 FLUSH PRIVILEGES;  -- (3)
 
  • 비밀번호를 변경하지 않았지만 호기심에… 그냥 exit 했다가 mysql -u root -p 를 입력하고, 비밀번호를 입력받는 창에서 그냥 enter를 입력하였다.
    • 진입이 가능하다!

비밀번호 변경하기

  • 비밀번호 또한 mysql 스키마 내에서 설정 가능하다. 저장되어 있는 테이블은 user 테이블로, 다음의 명령어를 통해 변경할 수 있다.
    ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '변경할 비밀번호';

😍참고한 블로그 글들의 주인장 분들 덕에 몇 시간의 인터넷 서칭을 멈출 수 있었습니다....
감사합니다... 간단하고 깔끔하게 정리해주셔서ㅠㅠ 본 적은 없지만 사랑해도 될까요..?


참고

출처
mysql 초기 진입https://texasroh.blogspot.com/2018/12/1804-mysql-phpmyadmin.html
mysql 비밀번호 변경https://to-dy.tistory.com/58
profile
인생의 디테일을 추가하는 심채원

0개의 댓글