MySQL 사용
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
많은 애플리케이션이 데이터베이스로 MySQL에 의존하며, 테스트 실행을 위해 필요할 수 있습니다. MySQL 컨테이너를 사용하려면 Docker executor와 함께 GitLab Runner를 사용할 수 있습니다. 이 예시는 GitLab이 MySQL 컨테이너에 접근하는 데 사용하는 사용자 이름과 비밀번호를 설정하는 방법을 보여줍니다.
많은 애플리케이션이 데이터베이스로 MySQL에 의존하며, 테스트 실행을 위해 필요할 수 있습니다.
Docker executor와 함께 MySQL 사용#
MySQL 컨테이너를 사용하려면 Docker executor와 함께 GitLab Runner를 사용할 수 있습니다.
이 예시는 GitLab이 MySQL 컨테이너에 접근하는 데 사용하는 사용자 이름과 비밀번호를 설정하는 방법을 보여줍니다. 사용자 이름과 비밀번호를 설정하지 않으면 root를 사용해야 합니다.
GitLab UI에서 설정된 변수는 서비스 컨테이너로 전달되지 않습니다. 자세한 내용은 GitLab CI/CD 변수를 참조하세요.
-
MySQL 이미지를 지정하려면
.gitlab-ci.yml파일에 다음을 추가합니다:services: - mysql:latest- Docker Hub에서 사용 가능한 Docker 이미지를 사용할 수 있습니다.
예를 들어 MySQL 5.5를 사용하려면
mysql:5.5를 사용합니다. mysql이미지는 환경 변수를 허용할 수 있습니다. 자세한 내용은 Docker Hub 문서를 참조하세요.
- Docker Hub에서 사용 가능한 Docker 이미지를 사용할 수 있습니다.
예를 들어 MySQL 5.5를 사용하려면
-
데이터베이스 이름과 비밀번호를 포함하려면
.gitlab-ci.yml파일에 다음을 추가합니다:variables: # Configure mysql environment variables (https://hub.docker.com/_/mysql/) MYSQL_DATABASE: $MYSQL_DB MYSQL_ROOT_PASSWORD: $MYSQL_PASSMySQL 컨테이너는
MYSQL_DATABASE와MYSQL_ROOT_PASSWORD를 사용하여 데이터베이스에 연결합니다. GitLab CI/CD 변수를 사용하여 이 값을 전달합니다 (위 예시에서는$MYSQL_DB와$MYSQL_PASS). 직접 호출하는 대신 이 방법을 사용합니다. -
예를 들어, 데이터베이스를 사용하도록 애플리케이션을 구성합니다:
Host: mysql User: runner Password: <your_mysql_password> Database: <your_mysql_database>이 예시에서 사용자는
runner입니다. 데이터베이스에 접근 권한이 있는 사용자를 사용해야 합니다.
Shell executor와 함께 MySQL 사용#
Shell executor와 함께 GitLab Runner를 사용하는 수동으로 구성된 서버에서 MySQL을 사용할 수도 있습니다.
-
MySQL 서버를 설치합니다:
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev -
MySQL 루트 비밀번호를 선택하고 요청 시 두 번 입력합니다.
[!note] 보안 조치로
mysql_secure_installation을 실행하여 익명 사용자를 제거하고, 테스트 데이터베이스를 삭제하고, 루트 사용자의 원격 로그인을 비활성화할 수 있습니다. -
루트로 MySQL에 로그인하여 사용자를 생성합니다:
mysql -u root -p -
애플리케이션에서 사용할 사용자(이 경우
runner)를 생성합니다. 명령에서$password를 강력한 비밀번호로 변경합니다.mysql>프롬프트에서 다음을 입력합니다:CREATE USER 'runner'@'localhost' IDENTIFIED BY '$password'; -
데이터베이스를 생성합니다:
CREATE DATABASE IF NOT EXISTS `<your_mysql_database>` DEFAULT CHARACTER SET `utf8` \ COLLATE `utf8_unicode_ci`; -
데이터베이스에 필요한 권한을 부여합니다:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `<your_mysql_database>`.* TO 'runner'@'localhost'; -
모든 것이 잘 되었다면 데이터베이스 세션을 종료할 수 있습니다:
\q -
새로 생성된 데이터베이스에 연결하여 모든 것이 제대로 있는지 확인합니다:
mysql -u runner -p -D <your_mysql_database> -
예를 들어, 데이터베이스를 사용하도록 애플리케이션을 구성합니다:
Host: localhost User: runner Password: $password Database: <your_mysql_database>
예시 프로젝트#
MySQL 예시를 보려면 이 샘플 프로젝트를 포크합니다. 이 프로젝트는 GitLab.com의 공개적으로 사용 가능한 인스턴스 러너를 사용합니다. README.md 파일을 업데이트하고, 변경 사항을 커밋하고, CI/CD 파이프라인을 확인하여 실행 중인 것을 확인합니다.
