我在我的本地开发服务器上使用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' => '',
),
答案 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