見出し画像

【CakePHP3】Error:SQLSTATE[HY000]: General error: 8 attempt to write a readonly databaseの解決方法

indexページを開いたときに、「データベース読み取り専用に書き込もうとして発生するエラーです」と表記されます。

結論から言うと、データベースへの書き込みに関して着目する点ではありません。

さまざまな記事で「パーミッション」が変更されていない。と表記されています。

パーミッションとは、許諾。つまり書き込み権限が付与されておりません。

更新されていないため一致しないデータから書き込みができないよ!
と言うことですね。

これを解決するには、ほんの少しのコマンド知識が必要となります。

参考記事


解決方法

総合環境の更新

まず、確認して欲しいのが更新確認です。
ぼくは開発環境にeclipseを利用していますが、もし更新情報が表示されている場合は必ず更新してください。

念の為の更新行動

$ brew upgrade
$ sudo brew services restart httpd

mac自体に更新があった場合、手動で更新しなければいけないファイルがあります。

そのため、更新した際また再起動した際も確認しておくといいでしょう。
(こちらは1行ずつターミナルに打ち込んでいきます。)

パーミッションの書き込み

$ cd ~/public/Mocheed/
$ chmod -R 777 tmp
$ chmod -R 777 logs
$ ls -la

cd ・・・ ディレクトリを参照します。
public/Mocheed/は、解決したいWebアプリの場所を指しています。
置かれているファイルの場所を指定しましょう。

あとは、呪文と思って1行ずつコピペで記述していくといいでしょう。
($マークは入れずにコピペしましょう。なんかの宣言って聞いていますが、未だよくわかっていません。知っている方がいたら教えていただくと嬉しいです。)

まとめ

このエラーの解決方法は更新してあげることです。

データベース関連を触っていて急に発生することもあり、そんなことあるかと疑問に感じるかもしれませんが一度この方法を試してみてください。

また、参考記事で試したところ「not found」と表記されたため解決までに時間がかかりました。

そのため解決できたときは感動しております笑
ぜひ、解決の糸口になれば幸いです。

ありがとうございました!

この記事が気に入ったらサポートをしてみませんか?