MySQLのユーザについての備忘録
システム移行用に、SQLファイルをXAMPPにインポートしたら大量のユーザが追加された!!
なんかrootとかも追加されてしまっていて、phpMyAdminにもログイン出来なくなっている~。
しょうがないので、久々にコマンドラインで操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# ユーザ一覧を表示 SELECT Host, User, Password FROM mysql.user; +------+-----------+-------------------------------------------+ | User | Host | Password | +------+-----------+-------------------------------------------+ | root | localhost | *1234567890123456789012345678901234567890 | | root | 127.0.0.1 | *1234567890123456789012345678901234567890 | | root | % | *1234567890123456789012345678901234567890 | +------+-----------+-------------------------------------------+ 3 rows in set (0.00 sec) # 面倒なのでroot以外のユーザは全削除 DELETE FROM mysql.user WHERE user<>'root'; # rootのパスワードも再設定 SET PASSWORD FOR root@"%"=PASSWORD('new_password'); |
mysqlユーザのホストについての説明。よく見かけるのは
localhost
127.0.0.1
% (ワイルドカード)
の三種類だと思う。ここでいうホストとは、ログインOKな接続元という意味です。つまりlocalhostや127.0.0.1は外部からは接続できないユーザという意味です。
※rootなんかは基本的に、そうするべき!
% (ワイルドカード)は、文字通りローカルでも外部からでも接続してOK!という指定です。
固定IPやsample.com等がある場合は、ホストとして指定すればセキュリティ上、安心です。
ただし、ユーザのソート順でID/PASSが判定されるため、それを意識する必要があり!
localhostと127.0.0.1の違いは?
基本的には同じで、ループバックアドレス(自サーバを指し示す特別なアドレス)です。
厳密な違いを言うなら
127.0.0.1 = TCP/IP経由
localhost = UNIXソケット経由
※よく分からない!って人は、127.0.0.1の方が正解です。
xamppのphpMyAdminは表示されているけど、テーブルが見られない…。
C:\xampp\phpmyadmin\config.inc.php
/* User for advanced features */
$cfg[‘Servers’][$i][‘controluser’] = ‘pma’; //ここをrootにすればOK!
$cfg[‘Servers’][$i][‘controlpass’] = ”;