MYSQL

2024年(令和6年)の祝祭日のCSVを作りました。以下よりダウンロードできます。

2024年(令和6年)の祝祭日CSV

1月1日(月)元日
1月8日(月)成人の日
2月11日(日)建国記念の日
2月12日(月)振替休日(建国記念の日)
2月23日(金)天皇誕生日
3月20日(水)春分の日
4月29日(月)昭和の日
5月3日(金)憲法記念日
5月4日(土)みどりの日
5月5日(日)こどもの日
5月6日(月)振替休日(こどもの日)
7月15日(月)海の日
8月11日(日)山の日
8月12日(月)振替休日(山の日)
9月16日(月)敬老の日
9月22日(日)秋分の日
9月23日(月)振替休日(秋分の日)
10月14日(月)スポーツの日
11月3日(日)文化の日
11月4日(月)振替休日(文化の日)
11月23日(土)勤労感謝の日
2024(令和6)年の祝日・休日一覧

2024年は結構連休・振替休日が多い印象。

MYSQL,PHP

MYSQLの文字コードはUTF8だと3バイトまでしか対応していないため上記の様なエラーが出ます。

そこで、DB・テーブルともにutf8mb4に変更し4バイト対応したのですが同様のエラーが出続ける。

原因はPHP側

$cnn->set_charset('utf8mb4');

とすることで解決しました。

MYSQL

Queryの作成をミスって、大量のQueryが溜まってしまうことがあります。MSYQLの接続数上限を超え、以下のエラーが出ます。

mysqli::real_connect(): (HY000/1040): Too many connections

実行中のQuery確認

mysql> show processlist;

上記で実行中のQueryを確認してみると、数百秒経過していないQueryが大量に発生しています。

300秒以上実行しているQueryリスト

mysql -h <HOST> -u <USER> -p -e'SELECT GROUP_CONCAT(ID) FROM information_schema.PROCESSLIST WHERE TIME > 300;'

上記で300秒以上経過しているQueryのプロセスIDがカンマ区切りで帰ってきます。

300秒以上経過しているQueryをまとめてKill

mysqladmin kill <ID>,<ID> -h localhost -u root -p

プロセスIDをコピペし、上記を実行すると数百秒経っても終わっていないQueryをまとめてKillすることができます。