メモメモメモ

ほんとうにめも

【Ajaxエラー】TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1 code point.

When

axiosを使ってAPIから値を取得する部分がうまく動いていなかった。

ググっても良い感じのアンサーが得られず困った。 リクエストヘッダーに日本語が入ってるっぽい?ってところまで当たりをつけたが、入ってないはずなんだよな。。って感じだった。

結論。

リクエストヘッダーに日本語が入ってた。 api_tokenに日本語が混じってた!あほや!

次同じ問題に直面したときにこの記事が出てきてすぐに気づけますように。。メモ

【AWS RDS】本番環境でやらかしたのでRDSを復元してデータを戻した

何が起きたか?

3日前くらいに実行したmigrationをrollbackしてしまいました。 追加されたいくつかのカラムが消えたので、そこに入ってたレコードも全部消えました。ぴえん😂

復元したときの自分の行動をざっくり

  1. 死ぬほど焦る
  2. 影響範囲の確認(どんなデータが消えてたかチェック)
  3. AWS Consoleに入る
  4. RDS > データベース > 該当DBクラスタ > 「メンテナンスとバックアップ」 > (下部)スナップショット > 一番新しいスナップショットを選択
  5. とりあえず「スナップショットを復元」を押す
  6. ・・・スナップショット復元が遅すぎる!!※1
  7. (復元完了した)DBにsshアクセスできない!!※2
  8. sshアクセスできた。中身見れた。ふむふむこれが消えてたのかー。
  9. 消えてたデータを復元(テーブル構造とレコードどっちも)
  10. 終わったハッピー

6. スナップショット復元が遅すぎる!!※1

なんとなくサクッと復元できるイメージを持ってたけど、RDSが速いのは「スナップショットの取得」までで、データを復元するにはデータ量に応じて相応の時間がかかるっぽい。(そりゃそうだ。)

この事実に気付いてからスナップショットをS3にエキスポートしてから必要なデータだけローカルで復元しようとしたが、それより先に復元が完了したのでやらずに済んだ。

7. DBにsshアクセスできない!!※2

  • パブリックアクセスの設定か? => 違かった
  • セキュリティグループのインバウンド 設定か? => 違かった

結論: 元のDBとVPCが同じになってなくてアクセスできなかった。(ここもデフォルトでコピーしてくれよ!😭)

まとめ

本番環境に眠い状態でアクセスするのはやめようね!

【MySQL】テーブル名とテーブルに関するコメントを一緒に見たい

結論

SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema = "schema名";

※schema名は何も考えてなかったら大体DB名

TablePlusなら

上記を調べてから気づいた。 元々TablePlusでさっと見れれば調べる必要もなかったのに。新しい発見はいつも不要なときにやってくる。

f:id:yooska14:20201022055059p:plain
TablePlus左上のここ(「Tables」)

ここを押すのじゃ。すると一番左にテーブル名・一番右にコメントが表示される。

感想

TablePlusのsnippetもう少し使いやすくならんかな。

【Laravel】mail driverをsesからsendgridに変えたのに本番環境で変更が反映されなかった

解決方法

queueをリスタートした。

なんとなくリスタートしてみたけど、queueってリスタートしないと環境変数反映しないんだっけ?

セルフホスティングしたRedashにアクセスするとInternalServerErrorが出てた

Why

ディスク容量がいっぱいだったらしい。

思い出

EC2インスタンスを起動すると良いと聞いて、再起動してみた。 すると、Dockerが起動できてなくてHTTPアクセスできなかった。 SSHアクセスはできたので手動でDockerを起動してみたが、ディスク容量の問題で起動できなかった(ここで原因に気づいた)。

解決手順

  1. 容量の大きいlogファイルを洗い出した(sudo du -x -h / | sort -r -h | head -40 | grep log
  2. 不要で容量の大きいlogファイルを全て消した。
  3. EC2インスタンスを再起動した。