0

最近、Windows 7 の VirtualBox の Fedora 19 に MariaDB をインストールしました。

私が実行すると:

MariaDB [(none)]> SELECT user, host, password FROM mysql.user;

私は得る:

+------+----------------------+-------------------------------------------+
| user | host                 | password                                  |
+------+----------------------+-------------------------------------------+
| root | localhost            | ***************************************** |
| root | my.hostname          | ***************************************** |
| root | 127.0.0.1            | ***************************************** |
| nusr | my.hostname          | ***************************************** |
+------+----------------------+-------------------------------------------+

my.hostnameは、Fedora でデフォルトのホスト名を変更したホスト名です。

ユーザー「nusr」を次のように作成しました。

CREATE USER 'nusr'@'my.hostname' IDENTIFIED BY 'my_password';

MariaDB に接続しようとすると、次のようになります。

[me@my ~]$ mysql -u nusr -p
Enter password: 

私は得る:

ERROR 1045 (28000): Access denied for user 'nusr'@'localhost' (using password: YES)

'nusr'@'localhost'これは、の代わりに を参照しているためだと推測してい'nusr'@'my.hostname'ます。

MariaDB に接続しようとするときに「localhost」がデフォルトのホストとして使用されるのはなぜですか?

ホストは保持する必要がありますか'localhost'?'127.0.0.1'

この質問の文脈として、「ホスト」と「ホスト名」という用語が何を意味するのかよくわかりません.MariaDBコマンドの学習経験を「カスタマイズ」したかっただけなので、上記の手順を完了することで失敗した可能性があります.

4

3 に答える 3

0

MariaDB サーバー (MySQL も) はlocalhost特別な方法で処理します。他のソフトウェアがこれをループバック アドレスのエイリアスのように扱う場合127.0.0.1、MariaDB はそれをサーバーへの UNIX ドメイン ソケット接続として解釈します。デフォルトでは、このソケット ファイルは/var/lib/mysql/mysql.sock.

ネットワーク経由でローカル サーバーに接続するには、-h 127.0.01パラメーターを使用します。これにより、mysqlクライアントはソケットではなくループバック ネットワーク インターフェイスを介して接続するように指示されます。

他の許可に関係なく、MariaDB は常にlocalhostローカル ソケット接続に変換されます。これを防ぎ、ネットワーク経由のアクセスのみを許可する場合は、ホストとして を持つユーザーをドロップしlocalhostます。

次のクエリを実行すると、データベース内のすべてのユーザーを表示できます。

SELECT * FROM mysql.user
于 2019-02-01T10:37:34.170 に答える
-2

システム Fedora 19 で適切にユーザーを作成する必要があります。

[root@localhost ~]# useradd nusr 
[root@localhost ~]# passwd nusr 
Changing password for user fedora.
New UNIX password:# set password
Retype new UNIX password:# confirm
passwd: all authentication tokens updated successfully.
[root@localhost ~]# exit # logout

したがって、データベースはユーザーを見つけられず、システム全体で作成されていないため、nusrユーザーを処理しません。nusr

ホスト名は「mydomain.com」という名前の IP アドレスから取得されますが、「ホスト」は IP アドレスまたは名前検索ホスト「mydomain.com」にすることができます。

于 2013-09-19T12:48:23.883 に答える