MySQLが文字化けした際の対応【小ネタ】

MySQLコマンドを使ってMySQLに接続した際に文字化けしていることが稀にあると思いますが、そのような時の対応をあげておきます。 事象としてはこんな感じです。 まずはMySQLの文字コード関連がどのようになっているか確認します。 今回は一部の設定(クライアント側の文字コード)がlatin1になっていることが原因でした。 取り急ぎクライアント側の文字コードを […]

ISUCON対策TIPS

公開できる範囲で個人的なISUCON対策TIPSを整理していきます。 MySQLのスロークエリログの設定 mysqlのconfファイルに追加する。 MySQLのスロークエリログを解析 MySQL標準のmysqldumpslowコマンドを使います。-sオプションはソートの基準を指定しており、tは総合合計時間です。-tオプションは上位何件までを出力するかで、例で […]

MySQLでエクスポート&インポートする際の効率化【小ネタ】

MySQL関連の小ネタです。 MySQLのデータベースを別のサーバに移行したり、バックアップの取得&復元をしたりする際に、一時的とはいえダンプファイルが大容量を取ってしまい、ディスクを逼迫してしまうことが少なくありません。 gzip圧縮をうまく活用することで、ディスク逼迫のリスクを軽減させることができます。 コマンドは簡単で、 MySQLでエクスポートする際 […]

MySQLのshow processlistを特定の条件でフィルタリングする【小ネタ】

MySQL関連の小ネタです。 MySQLが重いと感じた場合に「show processlist」① で今のMySQLの状態を確認できます。 しかし、①のSQLには一点問題があります。それはWHERE句が使えないことです。MySQLに対して大量の接続が発生している場合に、①のSQLを実行しても表示が流れてしまうため、どのプロセスをkillすればよいのか特定する […]

MySQLでリアルタイムにクエリの実行状況を見る【小ネタ】

MySQL関連の小ネタです。 システムのレスポンスが悪くなってしまった場合のアプローチとして、CPUやメモリ、ディスク等を総合的にチェックし、原因を特定していきますが、MySQLでリアルタイムにクエリの実行状況を見ることもあるかと思います。 その際、MySQLのSQL文「show processlist」が有名ですが、このSQL文の弱点は、大量に実行中のクエ […]

mysqldumpの落とし穴にハマった話【小ネタ】

mysqldumpで吐き出したダンプファイルを使って、新たにDBを作成しようとしたところ、作成したDBを参照するアプリの挙動がおかしい・・・ 色々調べた結果、mysqldumpの仕様の問題で元のDBから「ストアドプロシージャ」「ストアドファンクション」「イベント」がエクスポートできていなかったことが原因でした。(初歩的なミスかもしれませんが・・・) そして、 […]

MySQLで”Got error 28″【小ネタ】

MySQLのダンプファイルを生成しようとしたところ、このエラーが出てサーバが止まってしまったので、個人的なメモとして記事化しておきます。 このエラーが出た場合、十中八九ディスクの空き容量がなくなっています。 「エラー番号28=ディスク100%」と覚えましょう。試験に出ます!(嘘です) このエラー番号はMySQL特有のものではなく、OSであるLinuxが出力し […]