php artisan在Azure上迁移(在BitBucket管道中)

Ric*_*ges 7 bitbucket azure laravel artisan bitbucket-pipelines

我在BitBucket中设置了一个管道,以自动将我项目的主分支部署到Azure Web App实例.

该应用程序部署文件并按composer update预期运行(虽然它确实警告它以root身份运行),但php artisan migrate --force返回:

Illuminate\Database\QueryException:SQLSTATE [HY000] [1045]拒绝访问用户'forge'@'127.0.0.1'(使用密码:NO)(SQL:select*from information_schema.tables where table_schema = forge and table_name = migrations)

我已经创建了该.env文件,当我php artisan migrate在shell中运行时,它成功运行并创建了表.

由于部署脚本触发了命令,因此'forge'是database.php我图中的默认用户.env.

有没有明显的东西我错过了导致这个问题,或者我应该以某种方式将其设置为不以root身份运行?我可以替换数据库细节,database.php但我觉得这是错误的.

编辑

.env内容(某些数据替换为********):

APP_NAME=Laravel
APP_ENV=local
APP_KEY=********
APP_DEBUG=true
APP_URL=********

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=********
DB_DATABASE=********
DB_USERNAME=********
DB_PASSWORD=********

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Run Code Online (Sandbox Code Playgroud)

编辑2

我意识到我还没有发布我的bitbucket-pipelines.yml文件:

image: php:7.2-fpm

pipelines:
  branches:
    master:
      - step:
          script:
            - apt-get update && apt-get install -qy git curl libmcrypt-dev mysql-client && apt-get install -qy unzip git
            - yes | pecl install mcrypt-1.0.1
            - docker-php-ext-install pdo_mysql
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
            - composer update
            - php artisan migrate --force
            - php artisan serve --port=80 &
            - sleep 5
            - curl -vk http://localhost:80
          deployment: staging
          services:
            - mysql

definitions:
  services:
    mysql:
      image: mysql:5.7
      environment:
        MYSQL_DATABASE: '******'
        MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
        MYSQL_USER: '******'
        MYSQL_PASSWORD: '******'
        MYSQL_PORT: '******'
Run Code Online (Sandbox Code Playgroud)

我也有一个.env.pipelines文件:

APP_ENV=local
APP_KEY=******
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=******
DB_USERNAME=******
DB_PASSWORD=******
Run Code Online (Sandbox Code Playgroud)

Udh*_*iya 3

这个错误主要是由于文件修改后造成的.env

Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] 用户 'forge'@'127.0.0.1' 的访问被拒绝(使用密码:NO)(SQL:从 information_schema.tables 中选择 *,其中 table_schema = forge 且 table_name = 迁移)

每当我们更改文件中的DB_DATABASE,DB_USERNAME和 时,我们都需要清除缓存。DB_PASSWORD.env

编辑完成后.env,必须清除缓存:php artisan config:cache

注意:如果数据库没有设置密码,请清除它DB_PASSWORD空格也必须删除(以前我也遇到过这个问题,将空格视为密码)