Loading...
MySQL 9.5 Reference Manual 9.5의 8.1.5 How to Run MySQL as a Normal User의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Windows에서는 일반 사용자 계정을 사용하여 서버를 Windows 서비스로 실행할 수 있습니다.
Linux에서, MySQL 리포지토리 또는 RPM 패키지를 사용하여 수행된 설치의 경우, MySQL 서버 mysqld는 로컬 mysql 운영 체제 사용자에 의해 시작되어야 합니다. 다른 운영 체제 사용자에 의해 시작하는 것은 MySQL 리포지토리의 일부로 포함된 init 스크립트에서 지원되지 않습니다.
Unix(또는 tar.gz 패키지를 사용하여 설치를 수행한 Linux)에서는, MySQL 서버 mysqld는 어떤 사용자에 의해서든 시작 및 실행될 수 있습니다. 그러나 보안상의 이유로 서버를 Unix root 사용자로 실행하는 것은 피해야 합니다. mysqld를 일반 권한의 Unix 사용자 user_name 으로 실행되도록 변경하려면, 다음을 수행해야 합니다:
서버가 실행 중이라면 중지합니다(mysqladmin shutdown을 사용).
데이터베이스 디렉터리와 파일을 변경하여 user_name 이 그 안의 파일을 읽고 쓸 수 있는 권한을 갖도록 합니다(이 작업은 Unix root 사용자로 수행해야 할 수 있습니다):
1$> chown -R user_name /path/to/mysql/datadir
이렇게 하지 않으면, 서버가 user_name 으로 실행될 때 데이터베이스나 테이블에 접근할 수 없습니다.
MySQL 데이터 디렉터리 내의 디렉터리나 파일이 심볼릭 링크인 경우, chown -R 이 심볼릭 링크를 따라가지 않을 수 있습니다. 그런 경우, 해당 링크를 따라가서 그들이 가리키는 디렉터리와 파일도 변경해야 합니다.
서버를 사용자 user_name 으로 시작합니다. 또 다른 대안은 Unix root 사용자로 mysqld를 시작하고, --user=user_name 옵션을 사용하는 것입니다. mysqld는 시작한 후, 어떤 커넥션도 받기 전에 Unix 사용자 user_name 으로 전환하여 실행합니다.
주어진 사용자로 서버를 시스템 시작 시점에 자동으로 시작하려면, user 옵션을 /etc/my.cnf 옵션 파일의 [mysqld] 그룹 또는 서버 데이터 디렉터리의 my.cnf 옵션 파일에 추가하여 사용자 이름을 지정합니다. 예를 들면 다음과 같습니다:
1[mysqld] 2user=user_name
Unix 머신 자체가 보안되어 있지 않다면, 권한 부여 테이블에서 MySQL root 계정에 패스워드를 할당해야 합니다. 그렇지 않으면, 해당 머신에 로그인 계정을 가진 어떤 사용자든 mysql 클라이언트를 --user=root 옵션과 함께 실행하여 어떤 작업이든 수행할 수 있습니다.
(어떤 경우든 MySQL 계정에 패스워드를 할당하는 것이 좋지만, 특히 서버 호스트에 다른 로그인 계정이 존재하는 경우에는 더욱 그렇습니다.) 자세한 내용은 Section 2.9.4, “Securing the Initial MySQL Account”를 참조하십시오.
8.1.4 Security-Related mysqld Options and Variables
8.1.6 Security Considerations for LOAD DATA LOCAL