Gitlab CI / CD ERROR 1045 (28000): доступ запрещен для пользователя - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь настроить конвейер gitlab CI / CD. Одна из вещей, которую конвейер должен сделать, это запустить модульные и интеграционные тесты. Поэтому мне нужно настроить Мариадб. Я создал файл docker и создал образ, в котором должна быть установлена ​​переменная окружения, чтобы пользователь mysql создавался с именем chris и имел пароль с именем chris. Затем я показываю sh изображение docker до Амазонки ECR. В моем файле gitlab-ci.yml используется изображение, которое я подтолкнул к Amazon ECR. У меня проблема в том, что пользователь chris не получает доступ, НО пользователь root работает нормально. Что мне нужно добавить в мой docker файл, чтобы я мог использовать пользователя chris, а не root?

dockerfile

FROM mariadb:latest

ENV MYSQL_ROOT_PASSWORD "chris"
ENV MYSQL_DATABASE "testingdb"
ENV MYSQL_USER "chris"
ENV MYSQL_PASSWORD "chris"

RUN apt-get update && apt-get -y install vim

EXPOSE 3306

CMD ["mysqld"]

gitlab-ci.yml

image: XXXXXX.XXXXX.amazonaws.com/chris_mariadb:latest

services:
  - mariadb

variables:
  # Configure mysql environment variables (https://hub.docker.com/_/mysql/)
  MYSQL_DATABASE: "testingdb"
  MYSQL_ROOT_PASSWORD: "chris"
  Host: mysql
  User: chris
  Password: chris

stages:
  - build

build:
  stage: build
  script:
    - ls
    - mysql --user=chris --password=chris --host=localhost --port=3306 --database=testingdb --protocol=TCP --batch --local-infile < ./data/schema.sql

Ошибка

$ mysql --user=chris --password=chris --host=localhost --port=3306 --database=testingdb --protocol=TCP --batch --local-infile < ./data/schema.sql
ERROR 1045 (28000): Access denied for user 'chris'@'127.0.0.1' (using password: YES)

Любая помощь будет отличной. Я знаю, что мне, вероятно, не нужны переменные в моем gitlab-ci.yml, потому что я не использую бегуна mysql, но я отчаялся и стараюсь изо всех сил, чтобы это сработало. Я попытался запустить образ как контейнер, вошел и предоставил все привилегии для chris с подстановочными знаками и chris@127.0.0.1, и pu sh эти изменения вплоть до ECR, но это ничего не изменило. Кроме того, это работает правильно, когда user = root и password = chris. Я также получаю сообщения об ошибках, когда не использую TCP и пытаюсь использовать носок, поэтому я не хочу снова go идти по этому маршруту, если это не рекомендуется супер.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

это было нелегко отладить для нас, у нас было ....$F.... в случайно сгенерированном пароле базы данных, который хранился в переменных CI gitlab, и gitlab пытался заменить его переменной.

По существу, изменение пароля, и это вызвало ту же проблему

0 голосов
/ 24 января 2020

Добавьте переменную окружения MYSQL_USER: "chris" в вашем gitlab-ci.yml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...