Laravel Forge无法通过Socket连接到MySQL

时间:2015-07-27 23:38:26

标签: mysql laravel-5 laravel-5.1 laravel-forge

我刚刚开始使用Laravel Forge,但在进入服务器后,我似乎无法登录MySQL。每次我尝试:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我收到此错误:

DB_HOST=thehostip
DB_DATABASE=forge
DB_USERNAME=forge
DB_PASSWORD=theotherpassword

我使用Forge设置了我的环境变量,所以它不应该使用默认值:

'default' => env('DB_CONNECTION', 'mysql'),


'connections' => [

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

    ...
],

我已将数据库配置保留为:

{{1}}

3 个答案:

答案 0 :(得分:0)

我没有使用伪造的经验,但是通过快速查看,看起来你的MySQL主机就像你解释的那样是一个IP地址,这是我第一次想到伪造的时候,从我所知道的服务它是基于云的,DATABASE位于不同的机器/ IP地址上,您要执行以下命令:

mysql --host [thehostip or hostname] -u forge -p
Enter password: thepassword

您现在正在做的是访问同一台计算机上的mysql。如果我错了,我很抱歉,但您将配置描述为DB_HOST=thehostip这一事实让我相信它是一个网络地址。 的更新 只是看看它返回的错误,我很确定我是对的, 另外你做错的是-u在用户名之前需要一个空格,只有密码的-p参数不需要空格。

答案 1 :(得分:0)

给这个命令一个镜头:

sudo service mysql start

答案 2 :(得分:0)

好的,解决方案原来是使用512MB服务器是不合适的。在通过电子邮件发送Laravel Forge并解释我的问题之后,有人建议更新到至少1GB的服务器可以解决问题,而且确实如此。一旦我配置了1GB服务器,我就可以通过SSH进入MySQL而没有任何问题。