Я обновляю laravel до 5.8 с 5.3, используя laravelshift шаг за шагом и тестируя каждое обновление, например
но когда я развертываю его на сервере, Linode Server с настройкой Cpanel, и я выбираю php7.2 в Mutiphp Manager для этого веб-сайта.
Теперь это отлично работает в локальной среде в усадьбе, но в реальном времени я получаю ошибку db «Доступ запрещен для пользователя« усадьба »@« локальный хост »(с использованием пароля: ДА)».
Я также пытался подключиться к БД с помощью инструмента командной строки mysql, и он работает с тем же паролем. Я также изменил пароль в cpanel и попробовал с новым паролем. ничего не работает.






у вас может не быть базы данных с именем homestead на вашем сервере. Сначала создайте базу данных, а затем попробуйте подключиться.
У меня была такая же проблема, когда я впервые использовал mariadb, возможно, в этой статье содержится решение вашей проблемы.
Посмотрите здесь: https://superuser.com/questions/603026/mysql-how-to-fix-access-denied-for-user-rootlocalhost
Изменение пароля на что-то более простое, например, только цифры и числовые символы, без специальных символов, таких как # или ( и т. д., у меня сработало.
Сложный пароль, который включает специальные символы, работал у меня с помощью инструмента mysql в командной строке, но вызывал ошибку при запуске php artisan install или запуске моего кода в браузере http://my-project.dev
+1 Это самый правильный ответ. # char создает проблему с 5.8, это также может исправить, заключить пароль из двойных кавычек DB_PASSWORD = "xxxx#"
Несмотря на то, что OP нашел решение, используя пароль без специальных символов, настоящая причина этой проблемы заключается в том, что Laravel 5.8 использует новый пакет phpdotenv, который рассматривает символ # как начало комментария.
Из руководства по обновлению Laravel 5.8.
the # character in an unquoted value will now be considered a comment instead of part of the value.
To preserve the previous behavior, you may wrap the environment values in quotes:
Нет, имя базы данных, имя пользователя и пароль верны. Я подключился с помощью инструмента командной строки mysql, и он работает.