はじめに
- 最近、MySQL 漬けで色々と勉強になることがあったのでメモ
メモ(1)
!includedir とか !include
参考はこちら。
以前から my.cnf
とか同じ階層に conf.d
というディレクトリがあって何に使うんだろうと思いながら過ごしてきたけど、*.cnf
の拡張子で conf.d
に放り込んで my.cnf
に以下のように書いておけばそれらを読んでくれる。
[mysqld] !includedir /path/to/conf.d/
上記の場合、[mysqld]
でのみ !includedir /path/to/conf.d/
が適用される。また、my.cnf
の末尾に...
!include /path/to/hogehoge.cnf
と設定すれば MySQL
全体の挙動に /path/to/hogehoge.cnf
の設定が適用されるとのこと。
メモ(2)
mytop で色々と捗る
大きなレコードを読み込ませたい時とかその進捗をどのように確認するか悩みどころで...毎回、別の端末を起動して MySQL
にログインして show processlist
していたが mytop なるツールがあったので試してみた。mytop はその名の通り top
コマンドの MySQL
版。
Debian
系の場合には以下のようにインストールする。
apt-get install mytop
起動は mytop -uroot -p ${your_password}
で以下のように出力される。
これで進捗を見ながら並行して作業が出来たりして色々と捗る。
メモ(3)
データベースごとに割り当てられた権限を確認する
以下のような GRANT
文を使ってユーザーを作成した場合...
GRANT USAGE on *.* TO username@'localhost' IDENTIFIED BY 'password'; GRANT SELECT ON hoge.* TO 'username'@'localhost'; FLUSH PRIVILEGES;
SELECT * FROM user WHERE user='username'
でユーザーの権限を確認すると...
全ての権限が N
となっている。「あれっ? hoge
データベースに対する SELECT
権限は?」という疑問にぶつかるが、データベースに対する権限は以下のようにして確認する。
SELECT * FROM db WHERE Db='hoge'\G
以下のように出力されて hoge
データベースに対する権限について確認することが出来る。
なるほど、なるほど。
メモ(4)
データベースの各テーブル件数をサクッと知りたい
データベースの各テーブル件数をサクッと知りたい場合には以下のようなクエリを投げるとザックリとした件数を得られることが出来る。
SELECT table_name, table_rows FROM information_schema.TABLES WHERE table_schema = '${DB_NAME}';
例えば、MySQL
をインストール直後の mysql
データベース等を確認してみる。
SELECT table_name, table_rows FROM information_schema.TABLES WHERE table_schema = 'mysql';
以下のように結果が出力される。
+---------------------------+------------+ | table_name | table_rows | +---------------------------+------------+ | columns_priv | 0 | | db | 2 | | event | 0 | | func | 0 | | general_log | 2 | | help_category | 39 | | help_keyword | 464 | | help_relation | 1028 | | help_topic | 508 | | host | 0 | | ndb_binlog_index | 0 | | plugin | 0 | | proc | 0 | | procs_priv | 0 | | proxies_priv | 2 | | servers | 0 | | slow_log | 2 | | tables_priv | 0 | | time_zone | 0 | | time_zone_leap_second | 0 | | time_zone_name | 0 | | time_zone_transition | 0 | | time_zone_transition_type | 0 | | user | 7 | +---------------------------+------------+ 24 rows in set (0.02 sec)
ほうほう。データ移行した後等でざっくりと件数の比較をする時等に使えそう。
Coming Soon...
最後に
- 本当に小ネタ
- また、すぐに忘れてしまうんやろーなー