[Mysql] mysql.server start 원리 궁금하지 않나요?

행복한 콩🌳·2023년 5월 30일
0

SQL

목록 보기
30/31
post-custom-banner

DBeaver 설정 잘못해서 mv로 파일명만 후뚜루 마뚜루.. 바꿔서 어찌저찌 돌아가게만 만든지 어언 3주...문제가 발생하고 마는데

문제

Access denied for user 'root@'@'localhost'

구글링하면 GRANT로 권한 주라고 해서 ㅇㅋㅇㅋ하고 바로 권한 줌

GRANT ALL PRIVILEGES ON *.* TO root@"%"  IDENTIFIED BY PASSWORD '*DFJ8979FDSDSF89DFS';

기존 DB에 SHOW GRANTS;해서 IDENTIFIED BY PASSWORD 뒤에 있는 값 복붙해서 아무 생각 없이 GRANT ALL ~~했는데
일단 여기서 내가 잘못한 것들은

  1. IDENTIFIED BY PASSWORD 뒤에 난수같이 오면 저 옵션이 뭔지 확인해봤어야하고
  2. 저게 암호문이면 내가 암호로 넣으면 복호화가 되는지 생각해봤어야하고
  3. *.* 이게 맞는지 고민해봤어야한다.

반성

  1. IDENTIFIED BY PASSWORD
CREATE USER 'myusername'@'localhost' IDENTIFIED BY 'mypassword';

IDENTIFIED BY: MySQL 데이터베이스에 대한 액세스 권한을 부여하는 데 사용되는 키워드
PASSWORD: 사용자 계정의 비밀번호.
그리고 저 비밀번호는 평문이 들어가야함 평문이 들어가면 디비에는 인코딩되어서 암호문이 들어가는 것이 었음

  1. 암호를 넣으면 복호되는것이 아니라! 내가 평문을 넣으면 base64 -> 인코딩 되어서 저렇게 암호문으로 저장되는 것이었음

  2. *.* = 모든 데이터베이스와 모든 테이블을 의미

PASSWORD에 평문을 넣으니 잘됨!
STG DB password가 k8s secreet 파일에 암호화되어 있었는데 그건 또 kubernetes secret 복호화 로 검색하여.. echo -n '암호문' | base64 --decode로 복호화 해서 알아내고.. 그걸 저기 비밀번호에 넣어줌

기록용으로 암호화 명령어도 첨부
echo -n <VALUE> | base64​

mysql.server start 작동 원리

  1. MySQL 서버의 바이너리 파일을 찾음
    whereis mysql에 위치
  2. Mysql 서버의 프로세스를 시작. Mysql 서버의 백그라운드에서 실행됨
  3. mysql.server 명령어는 Mysql 서버의 포트를 열어 클라이언트가 연결

갑자기 트러블 슈팅에서 작동원리가 나온 이유는..
내가 Mysql을 설치한 바이너리 파일이 기본 경로가 아니여서 트러블 슈팅은 (구글링으로) 기본 경로 넣어서 막 이것저것 했는데 알고보니 내가 설치한 바이너리 파일은 다른 곳이 었음 ㅎ

dbeaver Local Client에 finder로 보면 /opt가 없어서 mv로 Auto-detect된 경로랑 이름을 맞춰 줬는데 ^^..ㅣ..
Shift + CMD + . 하면 숨김파일이 보입니다..여러분..
제대로 들어가서 제대로 설정함

아 그리고 만약에 저렇게 임시방편으로(절대하면 안되지만) 시도할거면 심볼릭 링크로 원본은 건들지 말고 처리합시데이..

ln -s
profile
매일매일 조금씩 모여 숲이 되자🐣
post-custom-banner

0개의 댓글