Laravel 5.8 не будет подключаться к нелокальной базе данных - PullRequest
0 голосов
/ 29 мая 2019

У меня проблема с тем, что новый проект Laravel (5.8) не будет подключаться к нелокальной базе данных.Я продолжаю получать сообщение об ошибке «Отказано в доступе для пользователя ...».Я знаю, что конфигурация правильная, потому что у меня есть другой проект, работающий в 5.6, подключающийся к той же базе данных с той же конфигурацией, и он работает.Похоже, что когда я использую имя хоста, отличное от «localhost», оно ломается.Он работал локально, пока я не попытался подключиться к другой нелокальной базе данных.

Я считаю, что Laravel неправильно принимает имя хоста.Я тоже все перечитал, не повезло.Ошибка «Отказано в доступе» всегда показывает одно и то же локальное имя хоста компьютера, на котором работает проект, но не имя удаленного хоста в env, поэтому я предполагаю, что он пытается подключиться к нему.Есть идеи, как решить эту проблему?Я не знаю, куда идти.

Заранее спасибо!

РЕДАКТИРОВАТЬ: Я точно знаю, что нет ошибки конфигурации, ошибки доступа к IP илиошибка кэширования, так как я уже устранял все эти возможные проблемы (это звучит как одна из этих проблем).Мои env и ошибка приведены ниже (все, что начинается с «my», является правильной информацией, которую я изменил для безопасности):

DB_CONNECTION=mysql
DB_HOST=mysql.myURL.com
DB_PORT=3306
DB_DATABASE=myDbName
DB_USERNAME=myDbUsername
DB_PASSWORD=myDbPassword
SQLSTATE[HY000] [1045] Access denied for user 'myDbUsername'@'NOTmysql.myURL.com' (using password: YES) (SQL: select count(*) as aggregate from `myTable`)

NOTmysql.myURL.com в этой ошибке действительнолокальное имя хоста сервера, на котором работает веб-сайт, но myDbUsername - это имя пользователя, которое я указал в конфигурации.

Ответы [ 3 ]

1 голос
/ 29 мая 2019

@ IanCowan попробуйте подключиться с помощью простого сценария php connect. Убедитесь, что это работает для вас в том же хранилище ... просто поместил этот файл php в / public папку.

И откройте / просмотрите URL для этого файла. Не забыл изменить конфиг.

Это просто для того, чтобы ... в конце соединения не возникало проблем.

<?php
    $servername = "localhost";
    $username = "username";
    $password = "password";

    try {
        $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "Connected successfully"; 
        }
    catch(PDOException $e)
        {
        echo "Connection failed: " . $e->getMessage();
        }
    ?>
0 голосов
/ 29 мая 2019

Смущающая ошибка с моей стороны, но я разобрался с ответом на свой вопрос.У меня есть # в пароле, и это заставляло часть пароля после # читаться как комментарий, поэтому он использовал только часть пароля.Я поставил пароль в кавычки и все теперь работает.

0 голосов
/ 29 мая 2019

1. Перейдите в файл .env и проверьте конфигурацию базы данных

DB_HOST=localhost
DB_DATABASE=laravelDb
DB_USERNAME=root
DB_PASSWORD=null

2. Затем перезапустите сервер apache и обновите страницу

3. Выйдите / закройте и повторите команду

php artisan serve

4. Очистите старый кеш конфигурации и файл конфигурации

php artisan config:clear
php artisan cache:clear

Теперь ваша ошибка должна исчезнуть.

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