Laravel Forge 无法通过套接字连接到 MySQL

Laravel Forge Can't Connect to MySQL through Socket

我刚开始使用 Laravel Forge,但在通过 SSH 连接到服务器后我似乎无法登录 MySQL。每次我尝试:

mysql -uforge -p
Enter password: thepassword

我收到这个错误:

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

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

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

我将数据库配置保留为:

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

    ...
],

我没有使用 Forge 的经验,但快速浏览一下,看起来您的 MySQL 主机是您解释的 IP 地址,当您说 Forge 时我的第一个想法是我知道它是基于云的服务,数据库位于不同的 machine/IP 地址上,您需要执行以下命令:

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

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

试试这个命令:

sudo service mysql start

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