TRAVIS CI:错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:NO)

时间:2019-04-03 21:34:03

标签: django travis-ci travis-ci-cli

我在GitHub上的私人仓库中创建了一个示例项目[Django / Python]。最近,我为它添加了一个示例.travis.yml文件,以使CI滚动。现在的问题是,在本地计算机上运行命令pytest时,我的测试[我正在使用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 :(得分:0)

在您的.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

或者总是最好使用roottravis作为用户名,并将密码留空。