Laravel 迁移工作正常,但是当我打开一个页面时,我得到 "SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'x.x.x.x' (13)" - using vagrant

Laravel migrations work fine, but when I open a page I get "SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'x.x.x.x' (13)" - using vagrant

我设置了多个 vagrant boxes,我将数据库放在一个独立的盒子里,将应用程序放在它自己的盒子里。 值得注意的是,我没有使用 laravel homestead。两台服务器 运行ning CentOS 7.

我可以在我的 windows 机器上从 HeidiSQL 连接,我什至可以 运行 php artisan migrate --seed 通过 ssh 并且它可以完美地迁移表。但是,当我打开依赖于数据库连接的页面时,我得到 SQLSTATE[HY000] [2003] Can't connect to MySQL server on '192.168.3.16' (13).

还值得一提的是,我遇到了文件权限问题,laravel 无法缓存视图,因为我得到以下信息:file_put_contents(/var/www/html/autofollow/storage/framework/sessions/N3Z5v2PxiKdgbCwOxXZylmnLZYbgCE4UEOM7uluq): failed to open stream: Permission denied

听起来很奇怪,它可能需要做一些有权限的事情。我尝试了有关文件权限的所有方法,使用 chown -R vagrant:apache 将所有者和组设置为 apache,甚至出于测试目的将所有权限更改为 777,但没有任何效果。

此时我很头疼,希望有相同经历的大神帮帮我。

提前致谢!

编辑:这是一个被触发的例子

/**
 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 */
public function index()
{

    $plans = Plan::all();

    return view("frontend.pricing", compact("plans"));
}

在应用根目录下尝试运行这个

sudo chgrp -R vagrant storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 

您的权限问题不允许Laravel创建会话文件

通过禁用 SELinux 解决了这两个问题:

sudo vim /etc/sysconfig/selinux

并将其更改为禁用:

SELINUX=disabled

查看状态:

sestatus