MySQL 5.6で追加された--ignore-db-dirオプションを使うと、データベースとして認識されなくなる。
これでdatadirを別パーティションに切っている時の`#mysql50#lost+found'ともさよならなのだ。
mysql> SHOW DATABASES;
+---------------------+
| Database |
+---------------------+
| information_schema |
| d1 |
| d2 |
| logs |
| #mysql50#lost+found |
| mysql |
| performance_schema |
| test |
| tpcc |
+---------------------+
9 rows in set (0.01 sec)
$ vi /etc/my.cnf
..
[mysqld]
ignore-db-dir = lost+found
..
ここでMySQL再起動。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| d1 |
| d2 |
| logs |
| mysql |
| performance_schema |
| test |
| tpcc |
+--------------------+
8 rows in set (0.00 sec)
やっほう!
ちなみにこの--ignore-db-dir、SHOW DATABASESで見えなくなるだけで色々できたりする。
mysql> use `#mysql50#lost+found`;
Database changed
mysql> SHOW TABLES;
Empty set (0.00 sec)
mysql> CREATE TABLE t1 ( a INT );
Query OK, 0 rows affected (0.09 sec)
$ ls -l lost+found/
合計 108
-rw-rw---- 1 mysql mysql 8554 3月 13 20:06 2013 t1.frm
-rw-rw---- 1 mysql mysql 98304 3月 13 20:06 2013 t1.ibd
それどころか、消せる。
mysql> DROP DATABASE `#mysql50#lost+found`;
Query OK, 1 row affected (0.07 sec)
$ ls -l lost+found/
ls: cannot access lost+found/: そのようなファイルやディレクトリはありません
ちなみに複数のディレクトリをIgnoreする時には、1行に1個ずつ書く必要があります。
$ vi /etc/my.cnf
..
[mysqld]
ignore-db-dir = lost+found
ignore-db-dir = .ssh
..
消せるのはちょっと面白かった。
0 件のコメント :
コメントを投稿