Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MAMP with Laravel Unix Socket

I'm working with MAMP on my local development server on my laravel application and I'm trying to figure out how I can safely setup my server so I don't have to use the following into the database connections mysql array because that should only be used when I'm on my development server. It works when I add the line into the mysql array however that isn't used if I was on a production server. Any ideas?

'unix_socket'   => '/Applications/MAMP/tmp/mysql/mysql.sock',

.env.development.php

<?php

return [
    'DB_HOST' => '127.0.0.1',
    'DB_USERNAME' => 'root',
    'DB_PASSWORD' => '1234',
    'DB_NAME' => 'mytable'
];

app/config/database.php

'connections' => array(

        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => getenv('DB_HOST'),
            'database'  => getenv('DB_NAME'),
            'username'  => getenv('DB_USERNAME'),
            'password'  => getenv('DB_PASSWORD'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
like image 650
user3732216 Avatar asked Dec 08 '14 19:12

user3732216


3 Answers

There is even simple solution. add this to ur .env file

DB_HOST=localhost;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock
like image 185
S. M. Ibrahim Lavlu Avatar answered Oct 11 '22 19:10

S. M. Ibrahim Lavlu


Make sure MAMP preference is set to Apache port: 80, Nginx Port: 80, MySQL Port: 3306

Here's what worked for me with Laravel 5.7:

go to config/database.php and find the line 54 below:

before: 'unix_socket' => env('DB_SOCKET', ''),

After: 'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),

Save the file.

Then in terminal run: php artisan config:cache php artisan migrate

like image 29
JackWalsh Avatar answered Oct 11 '22 20:10

JackWalsh


Check the environment detection part in the bootstrap/start.php. You should add your machine's name to the array that has local key. (If you don't know your machine's name, run hostname in terminal. If it's something stupid, Google how to change it. It's pretty simple.) Then copy and paste your database configurations to app/config/local/database.php. Create the file if it doesn't exists.

like image 26
Hkan Avatar answered Oct 11 '22 19:10

Hkan