Loading...
MySQL 9.5 Reference Manual 9.5의 2.9.4 Securing the Initial MySQL Account의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MySQL 설치 과정에는 MySQL 계정을 정의하는 mysql 시스템 스키마의 grant 테이블을 포함한 데이터 디렉터리 초기화가 포함됩니다. 자세한 내용은 Section 2.9.1, “Initializing the Data Directory”를 참조하십시오.
이 절에서는 MySQL 설치 절차 동안 생성된 초기 root 계정에, 아직 설정하지 않았다면, 패스워드를 할당하는 방법을 설명합니다.
참고
이 절에서 설명하는 과정을 수행하는 다른 방법:
Windows에서는 MySQL Configurator를 사용하여 설치 도중 이 과정을 수행할 수 있습니다( Section 2.3.2, “Configuration: Using MySQL Configurator” 참조).
모든 플랫폼에서 MySQL 배포판에는 커맨드라인 유틸리티인 mysql_secure_installation이 포함되어 있으며, 이는 MySQL 설치를 보안하는 과정의 많은 부분을 자동화합니다.
모든 플랫폼에서 MySQL Workbench를 사용할 수 있으며 유저 계정을 관리하는 기능을 제공합니다( Chapter 33, MySQL Workbench 참조).
다음과 같은 경우에는 초기 계정에 이미 패스워드가 할당되어 있을 수 있습니다:
Windows에서 MSI 인스톨러와 MySQL Configurator를 사용하여 수행된 설치는 패스워드를 할당할 수 있는 옵션을 제공합니다.
macOS 인스톨러를 사용하는 설치는 초기 랜덤 패스워드를 생성하며, 인스톨러는 이를 대화 상자에 사용자에게 표시합니다.
RPM 패키지를 사용하는 설치는 초기 랜덤 패스워드를 생성하며, 이를 서버 에러 로그에 기록합니다.
Debian 패키지를 사용하는 설치는 패스워드를 할당할 수 있는 옵션을 제공합니다.
mysqld --initialize를 사용하여 수동으로 수행된 데이터 디렉터리 초기화의 경우, mysqld는 초기 랜덤 패스워드를 생성하고, 이를 만료 상태로 표시하며, 서버 에러 로그에 기록합니다. Section 2.9.1, “Initializing the Data Directory”를 참조하십시오.
mysql.user grant 테이블은 초기 MySQL 유저 계정과 그 접근 권한을 정의합니다. MySQL 설치는 모든 권한을 가지며 무엇이든 수행할 수 있는 'root'@'localhost' 슈퍼유저 계정만 생성합니다. root 계정의 패스워드가 비어 있으면, MySQL 설치는 보호되지 않습니다. 누구나 root로 MySQL 서버에 패스워드 없이 접속하여 모든 권한을 부여받을 수 있습니다.
'root'@'localhost' 계정은 또한 mysql.proxies_priv 테이블에 row를 가지고 있으며, 이를 통해 ''@'', 즉 모든 유저와 모든 호스트에 대해 PROXY 권한을 부여할 수 있습니다. 이를 통해 root는 프록시 유저를 설정할 수 있으며, 다른 계정에 프록시 유저를 설정할 수 있는 권한을 위임할 수도 있습니다. Section 8.2.19, “Proxy Users”를 참조하십시오.
초기 MySQL root 계정에 패스워드를 할당하려면 다음 절차를 사용하십시오. 예제에서 root-password 는 사용하려는 패스워드로 바꾸십시오.
서버가 실행 중이 아니면 시작하십시오. 방법은 Section 2.9.2, “Starting the Server”를 참조하십시오.
초기 root 계정에는 패스워드가 있을 수도 있고 없을 수도 있습니다. 다음 중 해당하는 절차를 선택하십시오:
root 계정이 초기 랜덤 패스워드와 함께 존재하며, 그 패스워드가 만료 상태인 경우, 해당 패스워드를 사용하여 root로 서버에 접속한 다음 새 패스워드를 선택하십시오. 이는 데이터 디렉터리가 mysqld --initialize를 사용하여 초기화된 경우(수동이든, 인스톨러가 설치 도중 패스워드를 지정할 수 있는 옵션을 제공하지 않는 경우든)입니다. 패스워드가 존재하므로 서버에 접속하려면 이를 사용해야 합니다. 그러나 패스워드가 만료 상태이므로, 새 패스워드를 선택하기 전까지는 그 계정을 다른 용도로 사용할 수 없습니다.
초기 랜덤 패스워드를 모르는 경우, 서버 에러 로그를 확인하십시오.
그 패스워드를 사용하여 root로 서버에 접속하십시오:
1$> mysql -u root -p 2Enter password: (enter the random root password here)
1mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
root 계정이 존재하지만 패스워드가 없는 경우, 패스워드 없이 root로 서버에 접속한 다음 패스워드를 할당하십시오. 이는 mysqld --initialize-insecure를 사용하여 데이터 디렉터리를 초기화한 경우입니다.
root로 서버에 접속하십시오:1$> mysql -u root --skip-password
1mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
root 계정에 패스워드를 할당한 후에는, 해당 계정을 사용하여 서버에 접속할 때마다 그 패스워드를 제공해야 합니다. 예를 들어 mysql 클라이언트를 사용하여 서버에 접속하려면 다음 명령을 사용합니다:
1$> mysql -u root -p 2Enter password: (enter root password here)
mysqladmin으로 서버를 종료하려면 다음 명령을 사용합니다:
1$> mysqladmin -u root -p shutdown 2Enter password: (enter root password here)
참고
패스워드 설정에 대한 추가 정보는 Section 8.2.14, “Assigning Account Passwords”를 참조하십시오. root 패스워드를 설정한 후 이를 잊어버린 경우, Section B.3.3.2, “How to Reset the Root Password”를 참조하십시오.
추가 계정을 설정하려면 Section 8.2.8, “Adding Accounts, Assigning Privileges, and Dropping Accounts”를 참조하십시오.
2.9.3 Testing the Server
2.9.5 Starting and Stopping MySQL Automatically