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=
path
MySQL 설치 디렉토리 경로.
--builddir=
path
--srcdir
및 소스로부터 빌드와 함께 사용합니다. 이것은 빌드 된 파일이있는 디렉토리 위치에 놓습니다.--cross-bootstrap
내부 사용. 이 옵션은 호스트에 대해 시스템 테이블을 다른 호스트에서 빌드하는 데 사용됩니다.
--datadir=
path
MySQL 데이터 디렉토리 경로. MySQL 5.6.8 이후 mysql_install_db는 옵션 값에 대해보다 엄격하게되었습니다. 경로가 존재하지 않는 경우 경로 이름의 마지막 구성 요소 만 생성됩니다. 부모 디렉토리가 이미 존재해야합니다. 존재하지 않는 경우 오류가 발생합니다.
--defaults-extra-file=
file_name
이 옵션 파일은 글로벌 옵션 파일 다음에 읽을 수 있지만 (UNIX의 경우) 사용자 옵션 파일 전에 읽도록하십시오. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다.
file_name
은 전체 경로 이름이 아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.--defaults-file=
file_name
지정된 옵션 파일 만 사용합니다. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다.
file_name
은 전체 경로 이름이 아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.--force
DNS가 작동하지 않는 경우에도 mysql_install_db를 실행합니다. 일반적으로 호스트 이름을 사용하여 생성 된 부여 테이블 항목이 대신 IP 주소를 사용합니다.
--keep-my-cnf
mysql_install_db에 대해 기존의
my.cnf
파일이 있으면 새 기본my.cnf
파일을 만들지 않고 기존의 것을 유지하도록 지시합니다. 이 옵션은 MySQL 5.6.20에서 추가되었다.--ldata=
path
--datadir
의 동의어.--no-defaults
옵션 파일을 읽지 않습니다. 옵션 파일에서 알 수없는 옵션을 읽을로 인해 프로그램의 실행에 실패 할 경우
--no-defaults
를 사용하여 옵션을 읽지 못하도록 할 수 있습니다.--random-passwords
Unix 플랫폼에서이 옵션은보다 안전한 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_name
mysqld를 실행하는 데 사용하는 시스템 (로그인) 사용자 이름입니다. mysqld가 생성되는 파일 및 디렉토리는 사용자가 소유합니다. 이 옵션을 사용하려면 시스템
root
사용자이어야합니다. 기본적으로 mysqld는 현재의 로그인 이름을 사용하여 실행 생성되는 파일 및 디렉토리는 사용자의 소유입니다.--verbose
중복 모드. 프로그램의 동작에 대해 더 많은 정보를 출력합니다.
--windows
내부 사용. 이 옵션은 Windows 배포의 작성에 사용됩니다.