MAMP与Laravel Unix Socket

时间:2014-12-08 19:33:04

标签: php mysql laravel mamp mamp-pro

我在我的本地开发服务器上使用MAMP在我的laravel应用程序上工作,我试图弄清楚如何安全地设置我的服务器,所以我不必使用以下内容数据库连接mysql数组,因为只有在我的开发服务器上才能使用它。当我将该行添加到mysql数组中时,它会起作用,但如果我在生产服务器上,则不会使用它。有什么想法吗?

'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'
];

应用程序/配置/ 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'    => '',
        ),

5 个答案:

答案 0 :(得分:12)

甚至有简单的解决方案。将此添加到您的.env文件

DB_HOST=localhost;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock

答案 1 :(得分:6)

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,
        ],

.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

答案 2 :(得分:5)

检查bootstrap/start.php中的环境检测部分。您应该将计算机的名称添加到具有local密钥的阵列中。 (如果您不知道自己机器的名称,请在终端中运行hostname。如果这是愚蠢的话,Google将如何更改它。这非常简单。)然后将数据库配置复制并粘贴到app/config/local/database.php。如果文件不存在,请创建该文件。

答案 3 :(得分:0)

如果以上解决方案都不适合您.....

尝试实际启动您的网络服务器,因为这对我来说是解决方法

答案 4 :(得分:0)

确保将MAMP首选项设置为Apache端口:80,Nginx端口:80,MySQL端口:3306

以下是Laravel 5.7对我有用的东西:

转到config / database.php并找到下面的第54行:

之前: 'unix_socket'=> env('DB_SOCKET',''),

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

保存文件。

然后在终端运行: PHP的工匠配置:缓存 php artisan migration