MySQL

【MySQL】実行された全てのクエリを出力する「一般クエリログ」について

更新系・参照系問わずすべてのログが記録される。 ユーザーの接続・切断情報も記録される。 有効にするとすぐにログが肥大化するため、基本的にデバッグなどのときのみ有効にすると良い。 MySQL 5.6.3以降ではデフォルトでパスワードは平文で保存されること…

【入門・初心者向け】AnsibleでMariaDB(MySQL)をインストールして起動するところまで

こちらの続きです。 www.tomcky.net 簡単なプレイブックを作成して、実行するところまでやってみました。 今回はもう少し実践寄りで、MariaDBをインストールして起動するところまでの最低限を、Ansibleを使ってやってみます。 ロール(Role)を利用する 前回…

【MySQL入門】mysqldumpをほんの少し理解する

本記事はMySQL5.6を想定しており、他のバージョンの場合ではオプション使用時の動作が異なる可能性があります。 MySQLのバックアップ方法としてよく目にするのがmysqldumpを使ったバックアップです。 例えば全データベースのバックアップを取りたい場合は、…

MySQLストレージエンジンの確認方法

テーブルごとに使用されているストレージエンジンを確認する方法です。 方法その1。 mysql> use information_schema; mysql> select table_name, engine from tables where table_schema = 'DB_NAME'; 方法その2。 mysql> use DB_NAME; mysql> show table st…

今更ながら "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 ついこの間までは起動できてたんだけ…