【问题标题】:Laravel + SQLite = SQLSTATE[HY000]General Error: 8 attempt to write a readonly databaseLaravel + SQLite = SQLSTATE[HY000]一般错误:8次尝试写入只读数据库
【发布时间】:2018-05-29 20:42:29
【问题描述】:

我正在尝试删除一个 db.sqlite 文件,再次创建它,然后以相同的方法将一些信息插入到这个数据库中。这是我正在使用的方法:

public function destroy()
{
    // Store all contents and delete the first one since this is created via seeder
    $contents = $this->contents->all()->toArray();
    array_shift($contents);

    // Delete db file, creates it from an example file and changes permissions
    system('rm -rf ../database/database.sqlite');
    system('cp ../database/database.sqlite.example ../database/database.sqlite');
    system('chmod 0777 ../database/');
    system('chmod 0777 ../database/database.sqlite');

    // Insert data
    foreach ($contents as $content) {
        $this->contents->create($content);
    }

    return response()->json(['message' => 'Data has been destroyed!']);
}

但是当我尝试运行它时,我得到了标题中描述的错误:

SQLSTATE[HY000]General Error: 8 attempt to write a readonly database

我正在按照其他问题的答案的建议设置文件和文件夹的 777 权限,所以我不知道为什么它不起作用。

【问题讨论】:

  • @MCMXCII 我几乎也将问题标记为同一个骗子,但问题提交者确实声明“我正在为文件和 文件夹 授予 777 权限”他们问题的最后一行。
  • @cteski 我的错,没看到。

标签: php linux laravel sqlite ubuntu


【解决方案1】:

你需要运行两个命令

首先,将 Laravel 目录的所有权更改为 web 组:

sudo chown -R :www-data /var/www/yourLarvelFolder

其次,赋予存储目录权限,使其可写:

sudo chmod -R 775 /var/www/yourLarvelFolder/storage

【讨论】:

    【解决方案2】:

    在 ubuntu 中授予使用 18.04 和 laravel 6

    的权限
    sudo chmod -R 775 database
    sudo chown -R $(whoami) database
    

    【讨论】:

      【解决方案3】:

      如果您在 Fedora 或 Redhat 上使用 Selinux,请记住关闭 Selinux(或正确配置):

      setenforce 0
      

      【讨论】:

        【解决方案4】:

        最后我通过使用不同的方法解决了这个问题,一种是删除数据库并重新创建(返回所有内容),然后是第二种将所有内容插入新数据库。

        【讨论】:

          【解决方案5】:

          首先运行以下命令来检查 apache2 的用户。通常是www-data

          ps aux | grep "apache2"
          

          然后运行以下命令来解决您的问题。

          chgrp -R www-data your_application_directory
          chmod -R g+rw your_application_directory
          

          【讨论】:

            猜你喜欢
            • 2020-11-21
            • 1970-01-01
            • 2015-10-27
            • 2021-09-10
            • 1970-01-01
            • 2021-09-11
            • 2017-07-17
            • 2012-10-24
            相关资源
            最近更新 更多