【问题标题】:SQLSTATE[HY000]: General error: 13 Can't get stat of './pics' (Errcode: 13 - Permission denied)SQLSTATE [HY000]:一般错误:13 无法获取 './pics' 的统计信息(错误代码:13 - 权限被拒绝)
【发布时间】:2018-10-19 22:42:41
【问题描述】:

我在我的 ubuntu 16.0.4 服务器上工作,在 Symfony 3.4 应用程序上。 我不小心做了一个糟糕的操作

sudo chown -R USER /var/

虽然我想进入:

sudo chown -R USER var/

从那以后,我无法访问我的数据库。

我的 Symfony 应用程序说我:

An exception occured in driver: SQLSTATE[HY000] [1049] Unknown database 'pics'

并且使用学说,试图创建一个新的数据库,我有这个错误:

SQLSTATE[HY000]: General error: 13 Can't get stat of './pics' (Errcode: 13 - Permission denied)

我不知道我的数据库怎么会被这样删除。

有人可以帮我吗?

【问题讨论】:

  • 肮脏的直接解决方案:sudo chown -R root /var/; sudo chmod -R 777 /var/
  • 好吧,你救了我,我很恐慌,因为我丢失了我的数据库。谢谢
  • 但是现在你必须像@KevinO 所说的那样为你的 /var/ 目录带来秩序。
  • 您可能需要设置一个新系统,因为您的 /var 目录现在可能不再处于应用程序所期望的状态(访问权限)。

标签: php mysql symfony ubuntu


【解决方案1】:

如果您更新了/var 上的用户,则/var/lib/mysql 目录归错误用户所有,mysqld 进程无法写入该目录(也可能无法读取)。

您可以通过以下方式恢复数据库的权限:

cd /var/lib
chown -R mysql:mysql mysql

(注意:假设使用默认进程所有者和默认目录位置)

我可能会重新启动 mysql 进程。

但是,您可能遇到多个其他问题,包括 /var/run 没有所有正确的所有者,因此虽然系统目前可能是半稳定的,但重新启动可能会非常失败。

正如评论指出的那样,虽然可以通过chmod 777 允许完全读写来绕过该问题,但这只是以一种不安全的方式打开系统。如果丢失权限集,您会增加另一层问题。

正确的做法是固定/var层次结构中所有目录的所有权。可能与已知的良好系统进行比较将提供正确的所有者。但是对于数据库,上面将再次提供访问权限。

【讨论】:

  • 好的,我将研究最后一个解决方案。感谢您花时间解决我的问题。
猜你喜欢
  • 2017-04-04
  • 2013-01-25
  • 2011-10-18
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多