0

Centos6 (およびその他のディストリビューション iirc) 上の Mysql は、複数のルート ユーザーを初期化します (ここで、host.domain は私のホスト名です)。

select User,Host,Password from mysql.user where User = 'root';

+------+-------------+-------------------------------------------+
| User | Host        | Password                                  |
+------+-------------+-------------------------------------------+
| root | localhost   | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | host.domain | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | 127.0.0.1   | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+------+-------------+-------------------------------------------+

root@'host.domain' および root@'127.0.0.1' エントリの目的がわかりません。localhost 接続のホストが「localhost」ではないのはどのような状況ですか? すべてのローカル接続が「localhost」からのものとして解釈されたと思いました。

4

3 に答える 3

0

ウェブホストを実行している場合、Apache サーバーは同じサーバー上で複数のドメインをホストしている可能性があります。その場合、127.0.0.1 は複数のドメインを指します。たとえば、/etc/hosts は次のようになります。

127.0.0.1    localhost    www.gregsblog.com    www.dannisrecipes.org    www.schoolofsql.edu

php が MySQL にアクセスしようとすると、php を実行している apache システムの場合、彼のリクエストはroot@localhostになります。これはいい!グレッグがそれに到達しようとした場合はどうなりますか? 彼のリクエストはroot@www.gregsblog.comとして届きます。いかがわしい Greg がデータベースに入るのを望まないので、これも良いことです。

host.domainを使用すると、ホストを移動した場合に IMO が簡単になります。そのため、最終的に 2 つの別個のアプリケーション サーバーとデータ サーバーに分離したとしても、root@host.domainとなります。

于 2012-09-21T00:30:48.297 に答える
0

root@localhost ではなく root@remoteipaddress を使用します。これらはリモート ホスト アクセスに使用されるため、他のサーバーがデータベースに接続できます。

于 2012-09-21T02:29:42.353 に答える
0

必要に応じて、etc/hosts を編集し、localhost を 127.0.0.1 以外に設定することもできます。

于 2012-09-20T23:47:22.083 に答える