MariaDB를 고정된 Application의 구조에 맞게 일관되게 초기화가 필요할 때가 있을 것입니다.
예를 들면, 테스트 DB 구조를 수시로 초기화 하는 등의 경우에 유용한 방법일 듯 합니다.
그 방법을 알아 보겠습니다.
MariaDB는 초기화를 실행하는 "$MYSQL_HOME/scripts/mysql_install_db" 스크립트가 실행되는 과정에서 MariaDB 초기 배포 디렉토리 중 포함된 테스트DB 구성 스크립트인 "$MYSQL_HOME/share/mysql_test_db.sql" 파일을 실행하는데, 이 부분을 사용자가 원하는 DB 초기화 스크립트로 변경해 놓으면 됩니다.
제 경우는 MariaDB 배포 버전 "Ver 15.1 Distrib 10.4.6-MariaDB" 을 이용해서 패키지를 만들어 사용중이며, 아래와 같이 해당 스크립트 라인을 패치해서 이용 중입니다.
378c378
< mysql_test_db="$MYSQL_HOME/mysql_test_db.sql"
---
> mysql_test_db="/app/package/init/mariadb_initialize.sql"
추가로, 초기 패스워드를 설정하는 부분이 "$MYSQL_HOME/scripts/mysql_system_tables_data.sql" 스크립트에 포함되어 있는데, 이 부분을 사용자가 원하는 패스워드로 변경 저장해 두면 매우 편리합니다.
29c29
< SELECT '{"access":18446744073709551615,"plugin":"mysql_native_password","authentication_string":"invalid","auth_or":[{},{"plugin":"unix_socket"}]}' into @all_with_auth;
---
> SELECT '{"access":18446744073709551615,"plugin":"mysql_native_password","authentication_string":"인증_패스워드_Hash값","auth_or":[{},{"plugin":"unix_socket"}]}' into @all_with_auth;
참고:
"인증_패스워드_Hash값" 은 MySQL Client 에 접속해서 `select password('패스워드');` 를 이용해 얻은 Hash 값을 넣어 주어야 합니다.
'Dev. | Coding | DB > MySQL' 카테고리의 다른 글
MySQL 테이블 스키마 용량 확인 (0) | 2021.07.13 |
---|