Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
>php artisan migrate
exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)'
В файле config/database.php прописал логин пароль к MySQL!!!???
Почему не видит эти данные?
В 4.2 все работало!
Данные напрямую указаны, или через env? Тогда нужно еще файл .env отредактировать.
Не в сети
Данные напрямую указаны, или через env? Тогда нужно еще файл .env отредактировать.
Блин не знал что там еще .env надо корректировать!
А где находится этот .env, и как его прописать (какой формат)?
.env по умолчанию находится в корне. Но при подключении к базе данных, я его отключаю, и подключаюсь напрямую, ибо его предназначение мне тоже не совсем понятно. Подключение к базе у меня выглядит так:
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'db_name',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
и всё работает.
Через .env было примерно так:
'host' => env('DB_HOST', 'localhost')
Не в сети
А где находится этот .env, и как его прописать (какой формат)?
в корне находится .env-example, в него вносите ваши данные соединения и переименовываете в .env
Не в сети
Большое спасибо! Очень помогли быстренько разобраться
я прошу прощения, но у меня такая же ошибка а представленные тут решения не помогают. Если кто увидит в чём ошибка подскажите пожалуйста.
Файл env:
DB_HOST=localhost
DB_DATABASE=vernos
DB_USERNAME=root
DB_PASSWORD=1
Файл database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'vernos'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', '1'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
я прошу прощения, но у меня такая же ошибка а представленные тут решения не помогают. Если кто увидит в чём ошибка подскажите пожалуйста.
Файл env:
DB_HOST=localhost
DB_DATABASE=vernos
DB_USERNAME=root
DB_PASSWORD=1Файл database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'vernos'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', '1'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
Была та же проблема, помогла очистка внутреннего кэша laravel:
php artisan config:cache
P.S config/database.php мне менять не пришлось, достаточно было изменить .env
.env ибо его предназначение мне тоже не совсем понятно.
Файлик полезный например ты с другом делаеш проект на локальных машинах и пушите его в репозиторий на гит, у вас на локальных машинах свои настройки подключения к базе данных, этот файлик добовляется в гит игнор, в итоге ты не перетираеш настройки подключения к базе друга когда пушиш в гит, а он твои...Ну а когда проект на боевом сервер запускаеш этот файлик вообще можно удалить и настройки подключения прописать уже в config.
Не в сети
Добрый день!
Помогите, пожалуйста, разобраться. Все вышеперечисленные решения мне не помогают. Что еще может быть?
Не в сети
mikhalkevich пишет:.env ибо его предназначение мне тоже не совсем понятно.
Файлик полезный например ты с другом делаеш проект на локальных машинах и пушите его в репозиторий на гит, у вас на локальных машинах свои настройки подключения к базе данных, этот файлик добовляется в гит игнор, в итоге ты не перетираеш настройки подключения к базе друга когда пушиш в гит, а он твои...Ну а когда проект на боевом сервер запускаеш этот файлик вообще можно удалить и настройки подключения прописать уже в config.
Спасибо. Не знал, все не мог понять зачем он нужен и почему коннекты прописывать в двух местах приходилось. А кроме удаление .env файла где-то можно прописать что использовать из config/database.php например? Или работает по принципу файл есть - env, файла нет - из конфига?
Изменено won (31.01.2016 12:11:13)
Не в сети
Спасибо. Не знал, все не мог понять зачем он нужен и почему коннекты прописывать в двух местах приходилось. А кроме удаление .env файла где-то можно прописать что использовать из config/database.php например? Или работает по принципу файл есть - env, файла нет - из конфига?
В одном месте на выбор - конфиг-файл или файл окружения (.env).
Если говорить строго, то данные ВСЕГДА берутся из конфиг-файла, но вот сам конфиг по умолчанию часть значений берет из хелпера env() - а это переменные окружения из файла .env.
Laravel при использовании внутреннего механизма конфигурации всегда идёт только в config/какой-то-файл.php, а уже там может быть как явное задание значения:
return [
'path' => '/tmp'
]
Так и косвенное, к примеру через хелпер env():
return [
'path' => env('PATH)
]
Более того, вторым параметром хелпер-функции env() можно отдать значение по умолчанию - функция вернет его, если в окружении (.env) не было ключа
Не в сети
какие пароли надо вводить при подключении к базе данных!
DB_HOST=localhost
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
какие пароли надо вводить при подключении к базе данных!
DB_HOST=localhost
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
Если пасс и логин не менялись,то DB_HOST=localhost
DB_DATABASE=
DB_USERNAME=root
DB_PASSWORD=null
Не в сети
Была такая же проблема, помогла установка более свежей версии mysql.
Страницы 1