メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

mysqlが起動しないのは容量がいっぱいだからかも。

kimigasukidatosakebitai
sakuraからVENOMと呼ばれる脆弱性への対処が終わったので再起動してねってメールが来てたので、対象サーバーを再起動しようと思い、WordPressが動いてるサーバのアップデートしようと思ったらデータベース確立エラーが出てました。えーまじでーと思い、とりあえずmysqlログインしようと思ったら詳しく見てないけどsockって文字が書いてあったのでmysql.sock消してから再起動をかけました。かけたらmysqlが起動しなかったので超焦りました。

原因究明

とりあえず、MySQL Daemon failed to start.って起動してもこれが出るので、ログを見ることにしました。/var/log/mysqld.logを見ると、notesのエラーが続いて、最後にSort aborted: Error writing file みたいなエラーが出てて最後に(Errcode: 28)が出てました。ぐぐるとこれはperror 28ってやるとOSエラーであれば正体がわかるとの事なので、それをやった結果OS error code 28: No space left on deviceデバイスにスペースは残ってねーよってエラーが出ました。同じようなサイトを別のVPSでも動かしてるのになんでこいつだけって思ったんですけど、それを考えるより前に進まないとダメだったのでとりあえずこのマシンがどうなってるかを確認しました。

容量がえらいことに

dfコマンドを叩くと、ハードディスクの容量がどれだけ残ってるか知ることができます。

Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda3 204105516 7186852 186550616 4% /
tmpfs 961116 0 961116 0% /dev/shm
/dev/vda1 247919 75025 160094 32% /boot

2年稼働してるサーバーでも同じように使っててこんなもんなんだったんですけど、そのマシンは、この/dev/vda3のuseが100%でした。とりあえず原因が何かわかったので今度はどのディレクトリに巨大ファイルが入ってるんだと思ってduコマンドを叩きました。ちなみに、du -sh /* | sortってやると重たいフォルダ順に出てきます。が、これをやった結果、30分たっても反応がないので普通にdu /でやったらvarの中身を見てる最中に止まる感じだったので、こいつが犯人っぽいなと決めつけてvarをlsしていきました。したらlogの中に巨大ファイルがあったので、こいつを削除したら正常に戻ったのでmysqlとapache立ち上げて、元に戻しました。焦りました。logrotateが途中で起動した時に動いてなかったのが原因でした。僕の場合はcronが止まってたからです。割と初歩的なミスだったようです。とりあえずcronをchkconfig cron onってやって起動実行のリストに入れておきました。

あちなみに、ls -lhってやるとファイルサイズが、kとかmとかになるので便利です。

mysqlが起動しないと思ってやったこと


tail -n 100 /var/log/mysqld.log #logを100行見る
df #残り容量を見る
du -sh /* | sort #フォルダの合計容量を全て見る
#応答が帰ってこない場合は目星つけたフォルダをひたすら
ls -lh

と、やったことを書いてみると、とっても短いんですけど、或る日突然mysqlが起動しなかったら、試してみてください。

関連記事

  1. 2013.04.02

    LEFT JOIN Mysql