TRAVIS CI: ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: НЕТ) - PullRequest
0 голосов
/ 04 апреля 2019

Я создал пример проекта [Django / Python] в частном репозитории на GitHub.Недавно я добавил к нему пример файла .travis.yml, чтобы заставить CI работать.Теперь проблема в том, что мои тесты [я использую Pytest Suite] проходят, когда я запускаю команду pytest на моей локальной машине.Но я не могу запустить мой набор тестов на Travis из-за вышеупомянутой ошибки.Любая помощь в этом отношении будет оценена.

Вот мой пример .travis.yml файла.

language: python
sudo: false
python:
- '3.6.4'

services:
  - mysql

addons:
  apt:
    sources:
      - mysql-5.7-trusty
    packages:
      - mysql-server

cache:
  directories:
    - $HOME/.cache/pip

before_install:
  - sudo mysql -e "use mysql; update user set password=PASSWORD('123123') where User='root';FLUSH PRIVILEGES;"
  - sudo service mysql restart

before_cache:
  - rm -f $HOME/.cache/pip/log/debug.log

install:
  - pip install -r requirements/development.txt

before_script:
- sudo mysql -e 'CREATE DATABASE my_database;'

script:
- flake8
- pytest --cov -v --tb=native

notifications:
  email:
    on_success: change  # [always|never|change]
    on_failure: always  # [always|never|change]

Просто чтобы добавить еще один фрагмент информации.Мои настройки БД следующие: settings.py.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my_database',
        'USER': 'root',
        'PASSWORD': '123123',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
}

1 Ответ

0 голосов
/ 04 апреля 2019

В вашем .travis.yml используйте это, чтобы изменить пароль:

before_install:
  - sudo mysql -e "use mysql; update user set authentication_string=PASSWORD('123123') where User='root'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;"
  - sudo mysql_upgrade -u root -p123123
  - sudo service mysql restart

Или всегда лучше использовать root или travis в качестве имени пользователя и оставить пароль пустым.

...