4.4.3 mysql_install_db - MySQL 데이터 디렉토리 초기화
mysql_install_db는 MySQL 데이터 디렉토리를 초기화 시스템 테이블을 작성합니다 (시스템 테이블이없는 경우). 또한 InnoDB 테이블의 관리에 필요한 시스템 테이블 스페이스 와 관련된 데이터 구조체도 초기화합니다. MySQL 5.6.8에서는 mysql_install_db는 Perl 스크립트에서 Perl이 설치된 모든 시스템에서 사용할 수 있습니다. 5.6.8 이전에는 쉘 스크립트에서 Unix 플랫폼에서만 사용할 수 있습니다.
MySQL 5.6.8 이후에서는, mysql_install_db는 UNIX 플랫폼에서 my.cnf 라는 기본 옵션 파일을 기본 설치 디렉토리에 만듭니다. 이 파일은 my-default.cnf 라는 배포 패키지에 포함 된 템플릿됩니다. 템플릿은 기본 설치 디렉토리 또는 그 아래에서 찾을 수 있습니다. mysqld_safe를 사용하기 시작하면 서버는 기본적으로 my.cnf 파일을 사용합니다. my.cnf 이 이미 존재하는 경우, mysql_install_db는 그 파일이 사용중인 것으로 인식하고 my-new.cnf 라는 새 파일을 대신 씁니다.
하나의 예외를 제외하고 기본 옵션 파일의 설정은 주석 처리되어 무효가되어 있습니다. 예외는이 파일이 sql_mode 시스템 변수를 NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 로 변경하는 것입니다. 이 설정은 트랜잭션 테이블을 수정하는 작업에서 잘못된 데이터에 대한 경고가 아니라 오류를 발생시키는 서버 구성이 제공됩니다. 섹션 5.1.7 "서버 SQL 모드" 를 참조하십시오.
mysql_install_db를 호출하려면 다음 구문을 사용합니다.
shell> mysql_install_db [ options ]
MySQL 서버 mysqld가 나중에 시작될 때 데이터 디렉토리에 액세스해야하기 때문에, mysqld를 시작할 때 사용하는 것과 같은 시스템 계정에서 mysql_install_db를 시작하거나 root 로 실행하고 --user 옵션을 지정해 mysqld를 실행하는 사용자 이름을 지정합니다. mysql_install_db가 설치 디렉토리 또는 데이터 디렉토리의 올바른 위치를 사용하지 않는 경우는 --basedir 또는 --datadir 등의 다른 옵션을 지정해야하는 경우가 있습니다. 예 :
shell>scripts/mysql_install_db --user=mysql \--basedir=/opt/mysql/mysql \--datadir=/opt/mysql/mysql/data
mysql_install_db가 InnoDB 시스템 테이블 스페이스 를 설치 한 후 테이블 공간의 특성을 변경하려면 완전히 새로운 인스턴스 를 설치해야합니다. 여기에는 시스템 테이블 스페이스의 첫 번째 파일 이름과 undo 로그 수가 포함됩니다. 기본값을 사용하지 않는 경우는 mysql_install_db를 실행하기 전에 innodb_data_file_path 및 innodb_log_file_size 의 각 구성 매개 변수의 설정이 MySQL 구성 파일 에서 적절한 위치에 있는지 확인하십시오. 또한 innodb_data_home_dir 및 innodb_log_group_home_dir 같은 InnoDB 파일의 작성 및 위치에 영향을주는 기타 매개 변수를 필요에 따라 지정하십시오.
이러한 옵션이 구성 파일에있는 그 파일이 MySQL이 기본적으로 읽을 장소에없는 경우 mysql_install_db의 실행시에 --defaults-extra-file 옵션을 사용하여 파일의 위치를 지정합니다.
설치를 실행하는 동안 사용자의 TMPDIR 환경 변수를 설정하고 지정된 디렉토리에 액세스 할 수 없으면 mysql_install_db는 실패 할 수 있습니다. 그 경우는 TMPDIR 의 설정을 취소하거나 TMPDIR 을 시스템 임시 디렉토리 (일반적으로 /tmp )를 가리 키도록 설정합니다.
mysql_install_db는 다음 옵션을 지원합니다. 이들은 명령 행 또는 옵션 파일의 [mysql_install_db] 그룹에서 지정할 수 있습니다. (mysqld에 공통적 인 옵션은 [mysqld] 그룹에 지정할 수 있습니다.) 기타 옵션은 mysqld에 전달됩니다. MySQL 프로그램에서 사용되는 옵션 파일에 대한 자세한 내용은 섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.
표 4.2 mysql_install_db 옵션
| 형식 | 설명 | 도입 | 비추천 |
|---|---|---|---|
| --basedir | 기반 디렉토리 경로 | ||
| --builddir | 빌드 디렉토리 경로 (소스로부터 빌드) | ||
| --cross-bootstrap | 내부 사용 | ||
| --datadir | 데이터 디렉토리 경로 | ||
| --defaults-extra-file | 일반 옵션 파일 이외에 옵션 파일을 읽음 | ||
| --defaults-file | 지명 된 옵션 파일 만 읽음 | ||
| --force | DNS가 작동하지 않는 경우에도 실행 | ||
| --help | 도움말 메시지를 표시하고 종료 | ||
| --keep-my-cnf | 기존의 my.cnf file을 유지하고 새로 생성하지 | 5.6.20 | 5.6.20 |
| --ldata | --datadir의 동의어 | ||
| --no-defaults | 옵션 파일을 읽지 | ||
| --random-passwords | 관리 계정에 임의의 암호를 생성 | 5.6.8 | |
| --rpm | 내부 사용 | ||
| --skip-name-resolve | 부여 테이블에 호스트 이름 대신 IP 주소를 사용 | ||
| --srcdir | 내부 사용 | ||
| --user | mysqld를 실행하는 시스템 로그인 사용자 | ||
| --verbose | 중복 모드 | ||
| --windows | 내부 사용 |
--help도움말 메시지를 표시하고 종료합니다.
--basedir=pathMySQL 설치 디렉토리 경로.
--builddir=path--srcdir및 소스로부터 빌드와 함께 사용합니다. 이것은 빌드 된 파일이있는 디렉토리 위치에 놓습니다.--cross-bootstrap내부 사용. 이 옵션은 호스트에 대해 시스템 테이블을 다른 호스트에서 빌드하는 데 사용됩니다.
--datadir=pathMySQL 데이터 디렉토리 경로. MySQL 5.6.8 이후 mysql_install_db는 옵션 값에 대해보다 엄격하게되었습니다. 경로가 존재하지 않는 경우 경로 이름의 마지막 구성 요소 만 생성됩니다. 부모 디렉토리가 이미 존재해야합니다. 존재하지 않는 경우 오류가 발생합니다.
--defaults-extra-file=file_name이 옵션 파일은 글로벌 옵션 파일 다음에 읽을 수 있지만 (UNIX의 경우) 사용자 옵션 파일 전에 읽도록하십시오. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다.
file_name은 전체 경로 이름이 아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.--defaults-file=file_name지정된 옵션 파일 만 사용합니다. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다.
file_name은 전체 경로 이름이 아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.--forceDNS가 작동하지 않는 경우에도 mysql_install_db를 실행합니다. 일반적으로 호스트 이름을 사용하여 생성 된 부여 테이블 항목이 대신 IP 주소를 사용합니다.
--keep-my-cnfmysql_install_db에 대해 기존의
my.cnf파일이 있으면 새 기본my.cnf파일을 만들지 않고 기존의 것을 유지하도록 지시합니다. 이 옵션은 MySQL 5.6.20에서 추가되었다.--ldata=path--datadir의 동의어.--no-defaults옵션 파일을 읽지 않습니다. 옵션 파일에서 알 수없는 옵션을 읽을로 인해 프로그램의 실행에 실패 할 경우
--no-defaults를 사용하여 옵션을 읽지 못하도록 할 수 있습니다.--random-passwordsUnix 플랫폼에서이 옵션은보다 안전한 MySQL 설치를 제공합니다. mysql_install_db를
--random-passwords에서 시작하면 정상 작동 이외에 다음의 작업을 수행 할 수 있습니다.설치 프로세스는 임의의 암호를 생성하고 그것을 초기 MySQL
root계정에 할당 이러한 계정에 "만기 비밀번호"플래그를 설정합니다.초기의 임의의
root암호는HOME환경 변수에 의해 지정된 디렉토리의.mysql_secret파일에 기록됩니다. 운영 체제에 따라 sudo 등의 명령을 사용하면HOME값이root체제 사용자의 홈 디렉터리를 참조하게되는 경우가 있습니다..mysql_secret이 이미 존재하는 경우 새 암호 정보는 거기에 추가됩니다. 각 암호 항목에는 타임 스탬프가 포함되어 있기 때문에 여러 설치 작업의 경우에 각각 관련 패스워드를 확인할 수 있습니다..mysql_secret는 만들려는 시스템 사용자 만 액세스 할 수 있도록 모드 600에서 생성됩니다.익명 사용자 MySQL 계정이 만들어지지 않습니다.
이러한 작업의 결과 설치 후 서버를 시작하고
.mysql_secret파일에 기록 된 암호를 사용하여root로 연결하고 새로운root암호를 지정하는 것이 필요합니다. 이렇게까지root달리 아무것도 할 수 없습니다. 이것은 사용하는 모든root계정에 대해 실행해야합니다. 암호를 변경하려면SET PASSWORD문을 (예를 들어 mysql 클라이언트와 함께) 사용합니다. mysqladmin 또는 mysql_secure_installation도 사용할 수 있습니다.(업그레이드가 아닌) 새로운 RPM 설치 작업은 mysql_install_db를
--random-passwords옵션으로 기동합니다. (Unbreakable Linux Network에서의 RPM을 사용하여 설치 작업은 mysql_install_db를 사용하지 않기 때문에 영향을받지 않습니다.)MySQL 5.6.9에서는 (업그레이드가 아닌) 새로운 Solaris PKG 설치 작업은 mysql_install_db를
--random-passwords옵션으로 기동합니다.이진
.tar.gz배포 또는 소스 배포판을 사용하는 설치 작업은 mysql_install_db를--random-passwords옵션에서 수동으로 시작하여 MySQL 설치를 더 안전하게 할 수 있습니다. 이것은 중요한 데이터가있는 사이트에서는 특히 권장됩니다.이 옵션은 MySQL 5.6.8에서 추가되었습니다.
--rpm내부 사용. 이 옵션은 RPM 패키지를 사용하여 실행되는 설치 작업에서 MySQL 설치 과정에서 사용됩니다.
--skip-name-resolve부여 테이블의 항목 작성시 호스트 이름 대신 IP 주소를 사용합니다. 이 옵션은 DNS가 작동하지 않는 경우에 유용합니다.
--srcdir=path내부 사용. 이 옵션은 mysql_install_db가 오류 메시지 파일 및 도움말 테이블의 이입 용 파일 등의 지원 파일을 검색 할 디렉토리를 지정하십시오.
--user=user_namemysqld를 실행하는 데 사용하는 시스템 (로그인) 사용자 이름입니다. mysqld가 생성되는 파일 및 디렉토리는 사용자가 소유합니다. 이 옵션을 사용하려면 시스템
root사용자이어야합니다. 기본적으로 mysqld는 현재의 로그인 이름을 사용하여 실행 생성되는 파일 및 디렉토리는 사용자의 소유입니다.--verbose중복 모드. 프로그램의 동작에 대해 더 많은 정보를 출력합니다.
--windows내부 사용. 이 옵션은 Windows 배포의 작성에 사용됩니다.