MAMP with Laravel Unix Socket

2019-03-19 16:38发布

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'    => '',
        ),

4条回答
爷的心禁止访问
2楼-- · 2019-03-19 17:01

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

DB_HOST=localhost;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock
查看更多
疯言疯语
3楼-- · 2019-03-19 17:08

If none of the above solutions worked for you.....

Try actually starting your webserver as this was the fix for me

查看更多
Ridiculous、
4楼-- · 2019-03-19 17:09

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.

查看更多
Summer. ? 凉城
5楼-- · 2019-03-19 17:20

On config/database.php:

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST'),
            'unix_socket' => env('UNIX_SOCKET'),
            'port' => env('DB_PORT'),
            'database' => env('DB_DATABASE'),
            'username' => env('DB_USERNAME'),
            'password' => env('DB_PASSWORD'),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

On .env:

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mytable
DB_USERNAME=root
DB_PASSWORD=1234
UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
查看更多
登录 后发表回答