2016-05-21 3 views
0

私は特定のホスト/インターフェイス経由でMySQLサーバに接続したいという-hオプションを使用していますが、これは明らかに私は127.0.0.1(FLUSH PRIVILEGES(経由ルートのアクセス権を作成している"127.0.0.1"オプションが指定されていますが、引き続き "localhost"という名前を使用しています

[email protected]:/# mysql -h 127.0.0.1 -u root -proot 
mysql: [Warning] Using a password on the command line interface can be insecure. 
ERROR 1698 (28000): Access denied for user 'root'@'localhost' 

OBSが.:)、既に行ったので、あまり意味がありません。

[email protected]:/# mysql -e "SELECT User,Host,authentication_string FROM mysql.user;" 
+-----------+-----------+-------------------------------------------+ 
| User  | Host  | authentication_string      | 
+-----------+-----------+-------------------------------------------+ 
| root  | localhost |           | 
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | 
| root  | 127.0.0.1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | 
+-----------+-----------+-------------------------------------------+ 

はどんな君たちを持っています どこが失敗したのかわかりません:(..

PS:私はMySQL official docにAcoording Debianのジェシー+ MySQLの5.7.12

[email protected]:/# cat /etc/debian_version 
8.4 
[email protected]:/# mysql -e "SELECT VERSION();" 
+-----------+ 
| VERSION() | 
+-----------+ 
| 5.7.12 | 
+-----------+ 
+0

これを試して、保存されているパスワードが同じかどうか確認してください:SELECT PASSWORD( 'roor'); –

答えて

0

を使用しています:

「サーバーは、スレッドセーフ gethostbyaddr_rを使用してホスト名の解決を(実行オペレーティングシステム がサポートしている場合は、gethostbyname_r()が呼び出されます。

それ以外の場合、ルックアップを実行するスレッドはmutexをロックして を呼び出し、代わりにgethostbyaddr()とgethostbyname()を呼び出します。この場合 は、他のスレッドは、スレッドがミューテックスのロックを解除、それを保持するまで、ホスト キャッシュにないホスト名を解決することはできません「

私が見つけた解決策だった:。ユーザールート」を落とします@ MySQLのから「localhost」の。

DROP USER 'root'@'localhost'; 

私は/ etc/hostsファイルを修正しようとしましたが、ない良い。localhostに127.0.0.1をマッピングし、MySQLはこれら二つのシステムコールを実行する方法の周りに何か他のものは、あります、/etc/hostsに別の方法でマッピングされたアドレスであれば、独立しています。

警告: MySQLには管理者権限を持つユーザーが少なくとも1人いることを確認してください。接続には127.0.0.1を使用してください。そうしないと、MySQLのアクセス権や管理者権限が失われる可能性があります。

関連する問題