2015-10-12 2 views
0

Мы делаем заявку на участие в школе, в которой я сделал форму, чтобы добавить что-то в базу данных. Я слежу за Laracast, но всякий раз, когда я пытаюсь отправить свою форму, чтобы добавить содержимое в базу данных, я получаю;Laravel 5 - Соединение с базой данных отрицается

PDOException в Connector.php линии 55: SQLSTATE [28000] [1045] Доступ запрещен для пользователя 'корень' @ 'локальный' (используя пароль: ДА)

можно использовать команду php artisan migrate отлично, и он создает таблицы. Это просто приложение, которое не работает.

Есть ли способ решить это?

.env файл

PP_ENV=local 
APP_DEBUG=true 
APP_KEY=Hp7smlDebYOhW04Xn70J0TWfySNI2iAG 

DB_CONNECTION=mysql 
DB_HOST=localhost 
DB_DATABASE=boost 
DB_USERNAME=root 
DB_PASSWORD=****** 

CACHE_DRIVER=file 
SESSION_DRIVER=file 
+0

$ dbh = новый PDO ('mysql: host =; dbname = test', 'root', '************'); попробуйте это. Иногда для localhost, если вы указываете имя хоста, он выдает ошибку. Лучше оставить бланк. –

+1

Вы правильно скопировали файл или у вас действительно есть «PP_ENV = local» в вашей первой строке? Это определенно должно быть «APP_ENV = local», чтобы обнаружить вашу локальную среду/также, ваш пароль «root»? Я не прошу вашего пароля, но вам нужно знать, используете ли вы пароль по умолчанию для scotchbox. Нет причин не использовать root/root в scotchbox. – Jorre

+0

Еще одна вещь, которую вы можете проверить, это проверить, не обнаруживает ли laravel локальную среду или нет: поместите ее в контроллер где-нибудь и распечатайте переменную среды $. В результате вы получаете «местный»? '$ environment = App :: environment(); echo $ environment; ' – Jorre

ответ

1

ли вы скопировать и вставить файл правильно или вы действительно PP_ENV=local на вашей первой линии? Это определенно должно быть APP_ENV=local, чтобы обнаружить вашу локальную среду/также, ваш пароль «root»? Я не прошу вашего пароля, но вам нужно знать, используете ли вы пароль по умолчанию для scotchbox. Нет причин не использовать root/root в scotchbox.

Еще одна вещь, которую вы можете проверить, это проверить, не обнаруживает ли laravel локальную среду или нет: поместите это в контроллер где-нибудь и напечатайте переменную среды $. В результате вы получаете «местный»? $environment = App::environment(); echo $environment;

+0

Первая проблема заключалась в том, что я сделал опечатку в файле .env. Во-вторых, я работал в неправильной базе данных. Я использовал базу данных MAMP вместо базы данных scotchbox. –

0

Сначала вы должны установить MySQL правильно.

Сделайте конфигурацию DB в файле local.env или в файле с расширением .env. Вам необходимо предоставить ту же конфигурацию, которую вы предоставили в файле database.php.

+0

Я использую.файл env для моей конфигурации базы данных. –

+0

@JorenPolfliet проверить разрешение папки – sandeepsure

+0

Вы можете вставить полную копию своего .env-файла здесь? Кроме того, вы используете scotchbox/vagrant? – Jorre

1

Любая комбинация имени пользователя и пароля неверна, или вы не предоставили правильные ресурсы правильным хостам корневому пользователю в mysql.

Если ваша комбинация имени пользователя правильная - войдите в mysql из командной строки с правами root. Затем примените следующий:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'CHOOSE A PASSWORD';

который позволяет корневому пользователю иметь все привилегии от любого хоста. Я бы не рекомендовал делать это в производственной среде.

Также проверьте ваш database.php соответствует файл .env

'mysql' => [ 
      'driver' => 'mysql', 
      'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'sample'), 
      'username' => env('DB_USERNAME', 'root'), 
      'password' => env('DB_PASSWORD', ''), 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 
      'strict' => false, 
     ], 
+0

Я уверен, что данные для входа верны. Я дам команду выстрелом! Благодарю. –

+0

Что заставляет вас сказать, что вы уверены? Вы проверили свои учетные данные любым другим способом? – Jorre

+0

Да, у меня есть. Я могу войти в мою базу данных, используя SQLyog, используя те же самые учетные данные. –

Смежные вопросы