I was developing my application originally in Laravel 4.2 but have since decided to move it to the 5.0 version so that it covers a lot more changes and strengths that 5.0 has ov
Try this:
'mysql' => array(
'driver' => 'mysql',
'unix_socket' => getenv('UNIX_SOCKET'),
'host' => getenv('DB_HOST'),
...
),
In .env add
UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
In laravel 5.5 the unix_socket changes to DB_SOCKET
inside .env file :
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
inside config/database.php:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
I created a StackOverflow account solely to answer this question, and maybe help prevent someone going through the pain that I went through.
Answers that I found online ranged from changing 127.0.0.1 to localhost, changing the port from 3306 to 33060 and vice-versa, and making sure the unix_socket was correct.
The solution that solved my problem was changing:
DB_CONNECTION=mysql
DB_HOST=localhost
to
DB_CONNECTION=mysql
DB_HOST=mysql
I hope this helps someone out there. It took me 4 hours to find this painfully obvious solution...and it was found 1min29s into an obscure YouTube video with under 1000 views.
Thanks, help fix migration issue for me using:
MAMP PRO 4.2
Laravel 5.5
inside .env file:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=<database name>
DB_USERNAME=<username - default root>
DB_PASSWORD=<password - default root>
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
inside config/database.php:
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', '<database name>'),
'username' => env('DB_USERNAME', '<username - default root>'),
'password' => env('DB_PASSWORD', '<password - default root>'),
'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
],
Also don't forget to add to app/Providers/AppServiceProviders.php:
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
though quite old question, but still can help others. so adding answer.
there is even simple solution. add this to ur .env file
DB_HOST=localhost;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock