モヒカンメモ

髪色が定期的に変わることに定評のある(比較的)若者Webエンジニアの備忘録

MySQL

DockerHub MySQLイメージのベースOSがOracleLinuxへ変わった件

タイミング的には2017年ぐらいのイベントだけど、歴史のあるプロジェクトを保守する時たまに踏むので備忘録がてらまとめておく。 DockerHub MySQLイメージのベースOSはOracleLinuxへ変わった github.com これまでのベースOSは debian だったが、2017年ぐらい…

DockerHubにある "mysql:*-debian" イメージで "apt update" が失敗する問題

DockerHubにある mysql:*-debian 系イメージで、 apt update が失敗する問題が起きている。 apt updateしようとすると起きるエラー $ docker run --rm -it --platform linux/amd64 mysql:8-debian bash root@6f04ccbce772:/# apt update ... Err:2 http://re…

AmazonLinux2にMySQLクライアントのみをインストールする

AmazonLinux2にMySQLクライアントのみをインストールしたくなって方法を調べたのでまとめておく。

DBでdateとdatetimeを扱うときのカラム名suffixの使い分け

これまでデータベースのカラム名を命名する際、日付 (date) でも日時 (datetime) でもsuffixには `at` を使っていたが、日付の場合は `at` よりも `on` のほうが適切である、と教えてもらったのでそれについてまとめた。

mysqlコマンドの実行結果から枠線とカラム名を除いて表示する

mysqlコマンドの実行結果から枠線とカラム名を取り除いて表示する方法を調べたので備忘録がてらまとめておく

MySQLでプレースホルダ使いすぎて怒られるのを動的プレースホルダを使って回避する

雑に数万件ぐらいのidを突っ込んでMySQLへselectクエリ投げたらエラーになったので調べた。 ざっくりまとめ MySQLでプリペアドステートメントを使う場合、65536個以上のプレースホルダを含めることができない 先の制約はシステム変数で緩和できない (変更で…

mysqldumpしたら "unknown option '--show-warnings'" と怒られる問題

概要 長年困っていた、.my.cnfに "show-warnings" のオプション書いてたらmysqldumpしたときにunknown optionって怒られる問題。show-warningsを "client" じゃなくて "mysql" ディレクティブに書いとけば、mysql clientのときだけshow warningsできることに…

mysqldumpコマンドで "Unknown table 'COLUMN_STATISTICS' in information_schema (1109)" と怒られる原因と対策

エラーメッセージ mysqldump コマンドでMySQL上のデータのバックアップを取ろうとしたとき、下記のようなエラーが出た。 mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_s…

MySQLに投げられたすべてのSQLクエリをロギングする

概要 クエリビルダやORMが生成するクエリを確認したいなどの理由で、MySQLに投げられたクエリを確認したくなることがある そういうときは、MySQLのクエリログ (general_log) と言う設定をONにすることによって、すべてのクエリをログに吐かせることができる …

MySQL8をバージョンアップしたら起動しなくなった

背景 個人プロダクト用にMySQL8を運用していて定期的にバージョンアップを行っている 8.0.14 から 8.0.16 にマイナーバージョンアップしたところMySQLが起動しなくなった ファーーーーーーー pic.twitter.com/FrFW5kfi1K— ぴんくもひかん (@pinkumohikan) A…

MySQLにパスワードポリシーで怒られるときの回避策

MySQL5.7.8以降で、ゆるいパスワードでユーザを作成しようとした際に下記のようなエラーで怒られる mysql> create user "user_name"@"localhost" identified by "some_weak_password"; ERROR 1819 (HY000): Your password does not satisfy the current poli…

MySQLのtimestamp型カラムにUTC1970年1月1日 00:00:00よりも前の日時を入れようとしてハマった

timestamp=0よりも前の日時をinsertしようとして怒られたときの備忘録 できごと いつものように怪しいWebアプリ作りに勤しんでいたら、とある怪しいWebアプリがエラーを吐いていた Next Illuminate\Database\QueryException: SQLSTATE[22007]: Invalid datet…