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)를 입력하는 것이 좋습니다!