2016-09-28 4 views
0

私はMariaDBデータベースユーザuserを作成しました。私は予想通り、この作品MariaDBアカウントにデータベースへのローカルアクセスとリモートアクセスができますか?

mysql -uuser -hdevops.ok -p mydatabase 

のようなコマンドを使用してリモートコンピュータからデータベースに接続することができます

MariaDB [(none)]> select host,user,password from mysql.user;                                     
+-----------+-------+-------------------------------------------+ 
| host  | user | password         | 
+-----------+-------+-------------------------------------------+ 
| %   | user | ***************************************** | 
+-----------+-------+-------------------------------------------+ 

:のようになります。パスワードを使ってログインできます。

私は、データベース・サーバー上で午前

[[email protected] ~]$ mysql -h127.0.0.1 -uuser -p mydatabase            
Enter password: 
ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES) 

に接続しようと、私は%がローカルホストを含​​むネットワーク内のすべてのノードからのアクセスを許可することが期待しかし、それがどのように動作するかではないようです。

このユーザーにローカルアクセスを許可することはできますか?

私はもちろん

create user 'myser'@'localhost' identified by '****'; 

の別のアカウントを作成することができますこれは私のデータベースへのアクセスを可能にするが、それはより多くの回避策のように感じています。

更新

私は今、これはlocalhostが含まれていない2つのアカウント'myuser'@'localhost''myuser'@'%'

%を作成することによってのみ可能だと思います。 Btw 127.0.0.1および127.0.0.2localhostに解決され、結果としてこれらはまた%によって一致しない。

意味がありませんが、これは動作するはずです。

+0

はい ''% 'のホストは、ローカルip – RiggsFolly

+0

を含む任意のIPからログインできることを意味します。その場合は、vagrant vmからも 'mysql -uuser -hdevops.ok -p mydatabase'を試してください – RiggsFolly

答えて

0

ホストフィールドの%は、任意の対象ホストが可能であることを意味します。

データベースローカルUNIXソケットに接続127.0.0.1(TCPベースの接続)とlocalhost間の違いつの特殊ケースがあります。

db設定をskip-networkingbind-addressとします。参照してください https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/

TCP接続は、デフォルトでは無効になっ通常ている - これは使用ディストリビューション、パッケージによっては異なる場合があります、...

ですから、次のように入力したときに、それが動作するはずです:

mysql -hlocalhost -uuser -p mydatabase 

参考文献:

Unixではhttps://dev.mysql.com/doc/refman/5.5/en/connecting.html

は、MySQLプログラムは方法では、localhost特別にホスト名を扱うこと他のネットワークベースのプログラムと比較して期待どおりの可能性があります。 localhostへの接続の場合、MySQLプログラムはUnixソケットファイルを使用してローカルサーバに接続しようとします。

--socketオプションを使用することもできます。

関連する問題