sudo mysql_secure_installation

요걸로 비밀번호랑 기타 설정하는거에요

1.우선 

비밀번호 입력창이 나오면 엔터 혹은 비밀번호 입력합니다 

 

저는 root 사용자가 auth_socket 방식으로 되어 있어서 다시 비밀번호 설정할 때 비밀번호를 안 물어봅니다

설정은 다음과 같이 확인합니다

 

mysql> select user, host,plugin from mysql.user where user = 'root' ;
+------+-----------+-------------+
| user | host      | plugin      |
+------+-----------+-------------+
| root | localhost | auth_socket |
+------+-----------+-------------+
1 row in set (0.01 sec)

 

만약 plugin이 auth_socket으로 설정되어 있다면, 현재 OS 인증 방식이 활성화된 상태입니다.

sudo mysql 로 접속하면 됨

 

OS 인증 방식과 비밀번호 인증 방식의 차이점

  • OS 인증 방식(auth_socket)
    → sudo mysql  로 접속하며, 비밀번호 없이 인증됨.
  • 비밀번호 인증 방식(mysql_native_password)
    → mysql -u root -p 로 접속하며, 비밀번호 입력 필요.

비밀번호 인증 방식으로 변경 (선택 사항)

비밀번호를 사용해 로그인할 수 있도록 변경하려면 다음 명령어를 입력하세요:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '새로운비밀번호'; FLUSH PRIVILEGES;

 

이후에는 아래 명령어로 로그인할 수 있습니다:

mysql -u root -p

 

2. 두번째 - 개발환경이면 그냥 엔터해도 돼요

"Remove anonymous users?" (익명 사용자를 제거하시겠습니까?)

  • **Yes(y/Y)**를 선택하면 익명 사용자 계정이 삭제됩니다.
    • 운영 환경에서는 보안을 위해 익명 사용자를 제거하는 것이 일반적입니다.
  • **No(아무 다른 키)**를 선택하면 익명 사용자가 그대로 유지됩니다.
    • 만약 테스트 목적으로 계속 사용할 경우 유지할 수도 있습니다.

추천: 운영 환경이라면 Yes(Y)를 선택하여 익명 사용자를 제거하는 것이 더 안전합니다. 하지만 개발 및 테스트 환경이라면 유지해도 문제가 없습니다. 😊

 

3. MySQL의 root 계정이 원격에서 로그인할 수 있도록 허용할지 물어요 저는 NO

  • 기본적으로 root 계정은 localhost에서만 로그인 가능하도록 제한됩니다.
  • 이는 네트워크를 통해 공격자가 root 계정의 비밀번호를 추측하여 로그인하는 것을 방지하기 위함입니다.
  • 만약 원격(root) 로그인을 허용하면, 인터넷이나 외부 네트워크에서 root 계정으로 접속할 수 있게 됩니다.
  • 원격 접근을 차단하면 보안이 강화되며, 일반적으로 운영 환경에서는 차단하는 것이 추천됩니다.

✅ 추천:

  • Yes(y/Y)를 입력하면 root 계정이 오직 localhost에서만 로그인할 수 있도록 설정됩니다. (더 안전함)
  • No(아무 다른 키)를 입력하면 root 계정이 원격에서 접속할 수 있습니다. (보안 위험 증가)

운영 환경이라면 보안을 위해 Yes(Y)를 입력하는 것이 좋고, 만약 원격으로 root 접근이 꼭 필요하다면 No를 선택할 수도 있습니다.

 

4. MySQL의 'test' 데이터베이스를 삭제할지 - 저는 그냥 엔터

  • 기본적으로 MySQL에는 test라는 데이터베이스가 존재합니다.
  • 이 데이터베이스는 테스트 용도로 만들어졌으며, 누구나 접근할 수 있습니다.
  • 하지만 **운영 환경(production environment)**에서는 보안상의 이유로 제거하는 것이 권장됩니다.

5. 권한(privilege) 테이블을 새로 고쳐(reload) 변경 사항을 즉시 적용할 것인지

    저는 YES

 

✅ 추천:

  • **Yes(y/Y)**를 입력하면 권한 테이블이 다시 로드되어 모든 변경 사항이 즉시 적용됩니다.
    → 일반적으로 Yes(Y)를 선택하는 것이 좋습니다!
  • **No(아무 다른 키)**를 입력하면 지금까지 변경한 내용이 즉시 반영되지 않고, MySQL을 다시 시작해야 적용됩니다.

운영 환경이라면 바로 적용하는 것이 편리하므로 Yes(Y)를 입력하는 것이 좋습니다!

+ Recent posts