MySQL

今更ながら "Index column size too large. The maximum column size is 767 bytes." に遭遇した

Symfony、というかDoctrineでmigrateしたら、うっかり以下のようなエラーに遭遇。 Index column size too large. The maximum column size is 767 bytes. utf8mb4だと、varchar(255)とかインデックス張ると767バイト超えてしまって失敗してしまうっていうや…

【MySQL】データベースの安全なデータ更新のためにおさえておきたい手順

自分のために。横着しないように、油断しないように。 MySQLでなくても、基本的な手順は同じなはず。 ざっくりな手順 実行予定のSQLを自分の開発環境で実行したあとレビューしてもらう 更新前データのバックアップを取る SELECT文を実行して更新前データを抽…

例えばMackerelでMySQLとApacheのプロセスを監視する

mackerel.io ヘルプに書いてあるとおりにやればできる。 # yum install mackerel-check-plugins /etc/mackerel-agent/mackerel-agent.conf に以下を追記。 # check-procs # check mysql process [plugin.checks.check-mysqld] command = "check-procs --patt…

MySQLでCONCATを使わずに||で文字列結合できるか

結論から言うと、できる。 ただしデフォルトではできない。はず。 || で文字列結合するにはSQLモードの設定を行う必要がある。 手っ取り早く試したいなら以下のSQLコマンドを叩く。 SET @@session.sql_mode='PIPES_AS_CONCAT'; これでセッション内でのみ || …

MySQLでカラムを結合して検索する。あとDoctrineのQueryBuilderでの書き方。

id last_name first_name 1 田中 太郎 2 山田 花子 3 鈴木 一郎 氏名を別々のカラムにしているときに、それらを結合して検索したい(例えば 山田花子 とかで検索したい)とき。 SELECT * FROM user WHERE CONCAT(last_name, first_name) like "山田花子"; は…

DockerでMySQLコンテナが急に起動できなくなった

docker-compose up -d の後に docker-compose ps してみると Exit 1 。 Name Command State ------------------------------------------------------------------ mysql-container docker-entrypoint.sh mysqld Exit 1 ついこの間までは起動できてたんだけ…