Не удается получить данные API Laravel на Heroku - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть REST API Laravel, развернутый на бесплатном сервере Heroku.У меня также есть расширение ClearDB MySQL, установленное в развернутом приложении.

Моя проблема в том, что когда я набираю свой URL в Postman, чтобы найти данные API, я получаю это сообщение об ошибке, встроенное в некоторый HTML:

SQLSTATE[HY000] [1045] Access denied for user 'user'@'ip' (using password: YES) (SQL: select count(*) as aggregate from `test_data`)

Итак, это правильный URL,но по какой-то причине мне не разрешен доступ к нему.

Я также пытался перенести данные своей локальной базы данных в развернутую базу данных, но получаю следующее сообщение об ошибке:

In Connection.php line 665:

  SQLSTATE[HY000] [1045] Access denied for user 'user'@'ip' (using password: YES) (SQL: select * fro  
  m information_schema.tables where table_schema = heroku_xxxxx and table_name = migrations and table_type =   
  'BASE TABLE')                                                                                                          


In Connector.php line 70:

  SQLSTATE[HY000] [1045] Access denied for user 'user'@'ip' (using password: YES) 

Я понимаю, что это ошибки разрешения, но я неуверен, почему я их получаю.Я также знаю, что инфраструктура Heroku зависит от Postgres, и это может быть проще в использовании.Но сейчас, по крайней мере, у меня уже есть база данных MySQL, поэтому я хочу ее использовать.Следовательно, почему я установил ClearDB, чтобы использовать MySQL DB.

В моей конфигурации в Heroku у меня есть только это:

CLEARDB_DATABASE_URL: (The URL)

Почему я получаю эти ошибки и Как я могу получить и просмотреть свои данные API?

1 Ответ

0 голосов
/ 24 сентября 2019

У вас неверное имя ключа переменной среды.
В ваших настройках .env или на панели инструментов Heroku у вас должно быть что-то вроде этого

DATABASE_URL=mysql://username:password@us-cdbr-west.cleardb.com/DATABASE?reconnect=true

Затем убедитесь, что вы используете это соединениев config/database.php

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...