Перенос Laravel 4: установить ErrorException

php artisan migrate:install {"error":{"type":"ErrorException","message":"PDO::__construct(): [2002] Connection refused (trying to connect via tcp:\/\/127.0.0.1:3306)","file":"\/Applications\/MAMP\/htdocs\/DRCSports\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connectors\/Connector.php","line":47}} 

В моем database.php я обновил информацию до mysql

 'mysql' => array( 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'Laravel_DRCSports', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), 

Я не уверен, правильно ли понимаю ошибку, но для меня это похоже, что мой laravel не подключается к mysql вправо. Если это так, я не знаю, как это исправить.

Проблема заключалась в том, что mysql работает на порту 8888, а значение порта по умолчанию для Laravel – 3306 (так как это порт по умолчанию для серверов mysql).

Решение состоит в том, чтобы добавить к массиву ключ «порт» (например: «порт» => 8888), и он выполнит эту работу.

Это то, что я сделал … в /app/config/app.php

 'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost:8889', 'database' => 'pic', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), 

и в нижней части кода php

'redis' => массив (

  'cluster' => false, 'default' => array( 'host' => '127.0.0.1', 'port' => 8888, 'database' => 0, ), ), 

он должен работать …

У меня возникли проблемы (Laravel 4), когда я использовал MySQL на порте, отличном от 3306.

Приложение, запускаемое браузером, ожидает следующий синтаксис приложения / конфигурации / базы данных:

 'mysql' => array( ... 'host' => 'localhost', 'port' => '8889', ... ) 

В то время как мастер командной строки запускает следующий синтаксис:

 'mysql' => array( ... 'host' => 'localhost:8889', ... ) 

Проблема описана здесь:
https://github.com/laravel/laravel/issues/1182

Большинство статей предлагают обходной путь с использованием среды Laravel, но это приводит к дублированию конфигурационных файлов и нарушает принцип DRY (Do not Repeat Yourself), так что вот еще одна альтернатива:

В верхней части app / config / database.php:

 $my_hostname = 'localhost'; $my_port = '8889'; $my_database = 'database'; $my_username = 'username'; $my_password = 'password'; if (App::runningInConsole()) { // artisan runs from the command line // change 'localhost' to 'localhost:8889' $my_hostname = $my_hostname.':'.$my_port; } 

И далее вниз:

 'mysql' => array( 'driver' => 'mysql', 'host' => $my_hostname, 'port' => $my_port, 'database' => $my_database, 'username' => $my_username, 'password' => $my_password, 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), 

ура

Измените данные своей базы данных в файлах config / database.php и .env.

Я сделал эти изменения и работал как чемпион:

в database.php: host: localhost: 8889 Порт: 8889, а у моей мамы есть пароль, поэтому у меня есть два способа поставить этот пароль либо в файл database.php, либо в .env-файл. Я изменил значение пароля '' to 'forge ', а затем, используя мой пароль MAMP в файле .env, вы можете увидеть свою конкретную информацию о MAMP в приложении MAMP на вкладке порта (MySQL one)

Обязательно отредактируйте эту часть файла «.env».

 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=8889 DB_DATABASE=blog DB_USERNAME=root DB_PASSWORD=root 

Это сработало для меня.

я думаю, вы можете решить эту проблему, добавив следующий код внутри синтаксиса app / config / database:

 'mysql' => array( ... 'pconnect' => 'TRUE', ... )