Я использую Laravel 5.0 для Mac OS Yosemite.
В то время как в моем местном окружении, я бегу, php artisan migrate
я продолжаю получать:
Доступ запрещен для пользователя 'hometead' @ 'localhost' (используя пароль: ДА)
конфигурация
Вот мой .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=*****
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Приложение \ Config \ database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'homestead'),
'username' => env('DB_USERNAME', 'homestead'),
'password' => env('DB_PASSWORD', 'secret'),
'unix_socket' => '/tmp/mysql.sock',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
Как мне избежать такого рода ошибок?
Я пробовал :
1
в app / database.php
Заменить localhost
на127.0.0.1
'host'=> env('DB_HOST', 'localhost')
->'host' => env('DB_HOST', '127.0.0.1')
Также в .env
DB_HOST=localhost
-> DB_HOST=127.0.0.1
2
Попробуйте указать среду
php artisan migrate --env=local
3
Проверьте, работает ли MySQL при запуске
mysqladmin -u homestead -p status Enter password: secret
я получил
Uptime: 21281 Threads: 3 Questions: 274 Slow queries: 0 Opens: 327 Flush tables: 1 Open tables: 80 Queries per second avg: 0.012
Что означает, что он работает.
4
Проверьте MySQL UNIX Socket ( этот шаг работает для меня )
Ответы:
Причиной отказа в доступе для пользователя 'homestead' @ 'localhost' ошибка laravel 5 является проблема с кэшированием файла .env.php, поскольку Laravel 5 использует конфигурацию среды в вашем файле .env.
1 . Перейдите в корневой каталог своего приложения и откройте файл .env (в Ubuntu он может быть скрыт, поэтому нажмите ctrl+, hчтобы показать скрытые файлы, а если вы находитесь в терминале, введите:,
ls -a
чтобы показать скрытые файлы) в редакторе и измените настройки конфигурации базы данных. затем сохраните файл .env2 . затем перезапустите ваш сервер Apache / веб-сервер. и обновите свою страницу, и вы сделали
3 . Если проблема не устранена, попробуйте выполнить команду ниже, чтобы очистить старый файл кэша конфигурации.
Теперь вы сделали с ошибкой
источник
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
._..env
иconfig:clear
cache:clear
все команды, перезапустил,apache
но все еще получал ту же проблему.TLDR: вам нужно остановить сервер Ctrl+ cи начать снова, используя
php artisan serve
Подробности:
Если вы используете Laravel и уже запустили локальный сервер Dev
php artisan serve
И после того, как вышеупомянутый сервер уже запущен, вы изменяете материал, связанный с сервером базы данных, в файле .env. Как переход с MySQL на SQLite или что-то еще. Вам необходимо убедиться, что вы остановили вышеуказанный процесс, т.е.
Ctrcl C
что-нибудь, что остановило процесс. Затем перезапустите Artisan Serve, т. Е. Y,php artisan serve
и обновите браузер, и ваша проблема, связанная с базой данных, будет исправлена. Вот что у меня сработало для Laravel 5.3источник
Два способа решить это
Первый способ (не рекомендуется)
Откройте файл конфигурации базы данных (laravel_root / config / database.php) и найдите приведенный ниже блок кода.
Измените блок кода, как показано ниже
Второй способ (рекомендуется Laravel)
Проверьте, есть ли в вашем корне Laravel файл .env, если он не существует, поищите .env.example, скопируйте / переименуйте его в .env, после чего файл выглядит как удар!
Измените приведенный ниже блок следующим образом
Теперь все будет работать нормально.
источник
root/config/database.php
представляется излишней.если вы используете
php artisan migrate
NOT from vagrant box, а с хост-машины, то вы должны определить внутри.env
ip коробки192.168.10.10
и, очевидно, установить разрешение на усадьбу пользователя с вашего IP что-то вроде
в
.env
файлеисточник
grant all privileges on *.* to 'homestead'@'localhost' identified by 'secret';
работал на меня.Если вы используете веб-сервер PHP по умолчанию (например
php artisan serve
), вам необходимо перезапустить сервер после изменения значений файла .env.источник
проверьте эту тему на laracasts или этот блог для более подробной информации
если вы получаете
попробуйте изменить "host" в файле /app/config/database.php с "localhost" на "127.0.0.1". Вы можете найти более подробную информацию и другие исправления здесь в этой теме .
Также проверьте, правильно ли вы указали
unix_socket
. проверьте эту тему .источник
Проверьте MySQL UNIX Socket
Найти местоположение unix_socket, используя MySQL
mysql -u homestead -p
Затем я иду в config / database.php
Я обновляю эту строку:
'unix_socket' => '/tmp/mysql.sock',
к:
'unix_socket' => '/var/run/mysqld/mysqld.sock',
Вот и все. Это работает для меня как моя 4-я попытка. Я надеюсь, что эти шаги помогут кому-то. : D
источник
У меня была такая же проблема и в итоге оказалось, что мне просто нужно было перезагрузить сервер и начать заново
Ctrl+ cтогда
источник
В Windows PC следуйте ниже.
Доступ к корневой папке вашего приложения.
Отредактируйте файл .env
Отредактируйте выделенное и измените Имя пользователя и пароль и соответственно Имя базы данных.
источник
в моем случае после перезапуска моего сервера проблема исчезла.
выйти / закрыть команду "php artisan serve" и
перезапустите команду "php artisan serve" .
источник
Когда-нибудь в будущем. Попробуйте сначала очистить ваш конфиг
Закройте все окна терминала / cmd, а затем перезапустите терминал / CMD, и это должно избавить от сообщения об ошибке. Посмотри, работает ли это.
источник
после конфиг дб перезапустите:
Если подача активна перед настройкой db config.
источник
я использую laravel 5. * я полагаю, у меня есть вызов файла
.env
в корне проекта, который выглядит примерно так:И это закончилось записью конфигурации bd, так что вы можете удалить все эти конфигурационные переменные, чтобы laravel взял конфигурацию в / config или настроил вашу конфигурацию здесь.
Я сделал второе, и это работает для меня :)
источник
Понял! Войдите в систему как root и предоставьте усадьбе @ localhost права на все.
С вашего терминала:
Теперь обычные пользователи домовладений имеют доступ ко всем вашим таблицам и, следовательно, должны иметь возможность выполнять такие вещи, как миграция.
источник
После изменения .env с новой конфигурацией, вы должны остановить сервер и запустить его снова (php artisan serve). Причина, по которой Laravel получает среду при инициализации сервера. Если вы не перезагрузите компьютер, вы измените .env, спрашивая себя, почему изменения не происходят !!
источник
Все, что вам нужно сделать, это изменить файл .env .
Перед DB_DATABASE напишите имя базы данных, а перед DB_USERNAME используйте root .
источник
Я просто хотел опубликовать это, потому что эта проблема расстроила меня около 3 часов сегодня. Я не пробовал ни один из методов, перечисленных в других ответах, хотя все они кажутся разумными. На самом деле, я как раз собирался пройтись по каждому из предложенных выше решений, но каким-то образом я получил этот импульс вдохновения. Вот что помогло мне вернуться на работу - YMMV:
1) Найдите свой файл .env. 2) Переименуйте ваш файл .env во что-то другое. Laravel 5 должен использовать этот файл как переопределение для настроек где-то еще в фреймворке. Я переименовал мой в .env.old 3) Возможно, вам придется перезапустить ваш веб-сервер, но мне это не нужно.
Удачи!
источник
Вы должны запустить
$ php artisan migrate
команду из Homestead, а не с Mac.источник
MBP-bheng-aveniors
. Это не ваша ВМ. Вам нужно подключиться по SSH к Homestead ($ homestead ssh
), а затем запустить$ php artisan migrate
из этого сеанса SSH.Проверьте файл " .env " в корневой папке. это правильно?
источник
я нашел решение
Перейдите в корневой каталог вашего приложения и откройте файл .env (в Ubuntu он может быть скрыт, поэтому нажмите Ctrl + H, чтобы показать скрытые файлы) в редакторе и измените настройки конфигурации базы данных. затем сохраните файл .env
затем перезапустите ваш сервер Apache / веб-сервер. и обновите свою страницу, и вы сделали
Это сработало для меня GL ...
источник
просто измените эти вещи в файле .env вашей корневой папки.
Это сработало для меня.
источник
в моем случае (laravel 5+) мне пришлось заключить пароль в одинарные кавычки и очистить кеш конфигурации:
и затем запустите:
источник
Войдите в MYSQL - используйте базу данных mysql.
Выберите * из пользователя;
Убедитесь, что ваш столбец HOST правильный. Это должен быть хост, с которого вы подключаетесь (ваш сервер приложений), будь то IP-адрес или DNS-имя. Также «%» будет работать (имеется в виду подстановочный знак), но не будет безопасным.
источник
Проверьте файл .env, если вы отредактировали какую-либо переменную, пожалуйста, перезапустите сервер laravel, и ваша проблема будет решена
источник
A. После обновления файла .env настройками базы данных очистите параметр larval, запустив php artisan config: clear.
Б. Пожалуйста, убедитесь, что вы перезапускаете сервер apache / повторно запускаете команду «php artisan serve», чтобы ваши настройки вступили в силу.
источник
У меня была такая же проблема с использованием SQLite. Моя проблема заключалась в том, что DB_DATABASE указывал на неправильное местоположение файла.
Создайте файл sqlite с помощью команды touch и выведите путь к файлу с помощью php artisan tinker.
Затем выведите точный путь к переменной DB_DATABASE.
Без правильного пути вы получите ошибку отказа в доступе
источник
Если у вас есть ошибка, возвращающая что-то подобное,
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
это связано с тем, что вы меняете конфигурацию вашей базы данных какDB_DATABASE=laravelu
. Так что сейчас вы либо:DB_DATABASE=
[yourdatabase]
laravelu
в вашем phpmyadminэто должно быть в состоянии решить это
источник
В моем случае ошибка была «вызвана» моей конфигурацией Homestead / Vagrant, о которой я забыл :), пытаясь запустить миграцию только из командной строки.
В случае использования среды Homestead Vagrant Box вы должны запустить миграцию изнутри вашего компьютера Homestead (после подключения к нему с помощью ssh:),
vagrant@192.168.10.10:22
тогда права доступа будут в порядке и разрешат запуск миграции.источник
От твоего вопроса, кажется, ты управляешь усадьбой. В этом случае убедитесь, что вы выполняете команды на своей виртуальной машине. Многие разработчики, в том числе и я, часто ошибаются и запускают кустарные команды вне виртуальной машины, которые команды пытаются подключить к нашей локальной базе данных, доступной через localhost, которая отличается от базы данных, используемой hometead. Перейдите в каталог Homestead и запустите
Затем перейдите к коду, если вы храните свои проекты, и перейдите к своему проекту и запустите его,
php artisan migrate again
надеюсь, это поможет другим людям.источник