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

标签 php mysql laravel vagrant laravel-5.4

我设置了多个vagrant box,将数据库分隔在一个独立的box中,将应用程序分隔在自己的box中。 值得注意的是,我没有使用 laravel homestead。两台服务器都运行 CentOS 7。

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

还值得一提的是,我遇到了文件权限问题,并且 Laravel 无法缓存 View ,因为我收到以下内容: file_put_contents(/var/www/html/autofollow/storage/framework/sessions/N3Z5v2PxiKdgbCwOxXZylmnLZYbgCE4UEOM7uluq):无法打开流:权限被拒绝

尽管听起来很奇怪,但它可能需要使用权限来执行某些操作。我尝试了有关文件权限的所有方法,使用 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 创建 session 文件

关于php - Laravel 迁移工作正常,但是当我打开页面时,我得到 "SQLSTATE[HY000] [2003] Can' t connect to MySQL server on 'x.x.x.x' (13)"- using vagrant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48936758/

相关文章:

mysql - 尝试通过终端在 MySQL 中创建表时出错

PHP 从远程 URL 读取 JSON 文件

php - Laravel 搜索当前排名位置

php - 如何使用一个存储过程从单独的表中返回 mysql 列?

phpmyadmin 连接数据库

php - 如果填写了表单,如何验证php

mysql - SQL格式DATETIME统计月份

mysql - 需要更新主键,但如果更新的值存在,则删除该记录

mysql - 从 Eloquent Collection 中获取关系计数

javascript相当于php的for循环效率