MySQL 사용하기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

많은 애플리케이션이 MySQL을 데이터베이스로 사용하며, 테스트 실행을 위해 필요할 수 있습니다.

Docker Executor로 MySQL 사용하기

MySQL 컨테이너를 사용하고 싶다면, Docker executor와 함께 GitLab Runner를 사용할 수 있습니다.

이 예시에서는 GitLab이 MySQL 컨테이너에 접근하는 데 사용하는 사용자 이름과 비밀번호를 설정하는 방법을 보여줍니다. 사용자 이름과 비밀번호를 설정하지 않으면 root를 사용해야 합니다.

note
GitLab UI에서 설정된 변수는 서비스 컨테이너로 전달되지 않습니다.
자세한 내용은 GitLab CI/CD 변수를 참조하세요.
  1. MySQL 이미지를 지정하려면 .gitlab-ci.yml 파일에 다음을 추가하세요:

    services:
      - mysql:latest
    
    • Docker Hub에서 사용할 수 있는 모든 Docker 이미지를 사용할 수 있습니다.
      예를 들어, MySQL 5.5를 사용하려면 mysql:5.5를 사용하세요.
    • mysql 이미지는 환경 변수를 수용할 수 있습니다. 자세한 내용은
      Docker Hub 문서를 참조하세요.
  2. 데이터베이스 이름과 비밀번호를 포함하려면 .gitlab-ci.yml 파일에 다음을 추가하세요:

    variables:
      # mysql 환경 변수 구성 (https://hub.docker.com/_/mysql/)
      MYSQL_DATABASE: $MYSQL_DATABASE
      MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
    

    MySQL 컨테이너는 데이터베이스에 연결하기 위해 MYSQL_DATABASEMYSQL_ROOT_PASSWORD를 사용합니다.
    이러한 값을 변수($MYSQL_DB$MYSQL_PASS)를 사용하여 전달하세요,
    직접 호출하는 것보다 좋습니다.

  3. 애플리케이션을 데이터베이스를 사용하도록 구성하세요. 예를 들면:

    Host: mysql
    User: runner
    Password: <your_mysql_password>
    Database: <your_mysql_database>
    

    이 예제에서 사용자는 runner입니다. 데이터베이스에 접근할 수 있는 사용자를 사용해야 합니다.

Shell Executor로 MySQL 사용하기

GitLab Runner와 Shell executor를 사용하여 수동으로 구성된 서버에서 MySQL을 사용할 수도 있습니다.

  1. MySQL 서버를 설치하세요:

    sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
    
  2. MySQL root 비밀번호를 선택하고 요청받을 때 두 번 입력하세요.

    note
    보안 조치로, mysql_secure_installation을 실행하여
    익명의 사용자를 제거하고, 테스트 데이터베이스를 삭제하며,
    root 사용자의 원격 로그인을 비활성화할 수 있습니다.
  3. root로 MySQL에 로그인하여 사용자를 생성하세요:

    mysql -u root -p
    
  4. 애플리케이션에서 사용하는 사용자(여기서는 runner)를 생성하세요.
    명령어의 $password를 강력한 비밀번호로 변경하세요.

    mysql> 프롬프트에서 다음을 입력하세요:

    CREATE USER 'runner'@'localhost' IDENTIFIED BY '$password';
    
  5. 데이터베이스를 생성하세요:

    CREATE DATABASE IF NOT EXISTS `<your_mysql_database>` DEFAULT CHARACTER SET `utf8` \
    COLLATE `utf8_unicode_ci`;
    
  6. 데이터베이스에 필요한 권한을 부여하세요:

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `<your_mysql_database>`.* TO 'runner'@'localhost';
    
  7. 모든 작업이 잘 진행되었다면, 데이터베이스 세션을 종료하세요:

    \q
    
  8. 새로 생성된 데이터베이스에 연결하여 모든 것이 잘 설정되었는지 확인하세요:

    mysql -u runner -p -D <your_mysql_database>
    
  9. 애플리케이션을 데이터베이스를 사용하도록 구성하세요. 예를 들면:

    Host: localhost
    User: runner
    Password: $password
    Database: <your_mysql_database>
    

예제 프로젝트

MySQL 예제를 보려면 이 샘플 프로젝트의 포크를 만드세요.

이 프로젝트는 GitLab.com의 공개적으로 사용 가능한 인스턴스 러너를 사용합니다.

README.md 파일을 업데이트하고, 변경 사항을 커밋한 후, CI/CD 파이프라인을 보고 작동하는 모습을 확인하세요.