私のMySQLサーバーには、追加しなかった奇妙なユーザーが多数います。これらはすべて必要ですか?
'root'@'127.0.0.1'
'root'@'localhost'
'root'@'SERVERNAME'
'root'@'::1'
''@'SERVERNAME'
''@'LOCALHOST'
Root @ localhostを除くすべてのルートを削除すると、データベースから自分自身をロックアウトしてしまう可能性がありますか?そして、空のユーザー名の目的は何ですか?彼らはただ「GRANTUSAGE」を持っているようです??
ホストとしての127.0.0.1とローカルホストの間に違いはありますか?ローカルホストのみがあり、127.0.0.1がない場合、Unixソケットの代わりにTCP/IPを使用するmysqlclientが接続できないことを意味しますか?
これらのユーザーは、MySQLのインストール時に追加された デフォルトユーザー のようです。 MySQLのインストール後に mysql_secure_installation を実行することをお勧めします。
空のユーザー名( '' @ 'SERVERNAME')は、匿名ユーザーを表します。 mysql_secure_installation
を実行したり、パスワードを設定したりしなかった場合は、誰でもアクセスできます。匿名ユーザーがGRANT USAGE
特権を持っている場合、それは基本的に特権がないことを意味しますが、匿名ログインを完全に削除することをお勧めします。
いいえ、localhostと127.0.0.1の間に大きな違いはありません。ユーザーがログインしようとしているIPアドレスは、ユーザー名の@[IP Address]
部分と一致する必要があります。 MySQLサーバーがオンになっている同じマシンからログインする場合、@localhost
と@127.0.0.1
は一致します。 IVlint67が指摘しているように、一部のインストールでは@localhost
が機能しないため、@127.0.0.1
を使用することをお勧めします。
私は通常、MySQLに同梱されているmysql_secure_installationスクリプトを使用してインストールします...
[email protected]は@IPアドレスです。 root @localhostは@ホスト名です。サーバー名も同様です。そして最後のルートはローカルホストの@ IPv6アドレスです。
MySQLサイトから:
ホスト127.0.0.1に接続しようとすると、通常はlocalhostアカウントに解決されます。ただし、サーバーが--skip-name-resolveオプションを指定して実行されている場合、これは失敗するため、その場合は127.0.0.1アカウントが役立ちます。
空のユーザー名:
一部のアカウントは匿名ユーザー用です。これらのユーザー名は空です。匿名アカウントにはパスワードがないため、誰でもそれらを使用してMySQLサーバーに接続できます
http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html
そして最後に:
root @ localhostを除くすべてのルートを削除すると、データベースから自分自身をロックアウトしてしまう可能性がありますか?
--skip-grant-tablesを参照してください: https://help.ubuntu.com/community/MysqlPasswordReset
私は気にしません、それはあなたのサーバーです。私の場合は、rootアカウントをそのままパスワードで保護し、必要がない限り匿名アカウントを削除します。