2017-11-03 9 views
1

私はMySQLをDockerコンテナにインストールしていますが、ログインしようとしています。MySQL(Dockerコンテナ内)にログインできません

パスワードをコピーして貼り付けるのに慎重です。

私はどこかの隠れたキャラクターを恐れているものすべてを再入力しました。

mysql> use mysql; 
Reading table information for completion of table and column names 
You can turn off this feature to get a quicker startup with -A 

Database changed 
mysql> grant all privileges on db_thalasoft.* to [email protected]'%' identified by 'XXX'; 
Query OK, 0 rows affected (0.00 sec) 

mysql> flush privileges; 
Query OK, 0 rows affected (0.01 sec) 

mysql> quit; 
Bye 
[email protected]:/usr/bin/mysql/install# bin/mysql -u thalasoft -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'thalasoft'@'localhost' (using password: YES) 

バージョンは、mysql-5.6.30.tar.gzアーカイブの自己構築型です。

+0

コンテナの起動に使用したコマンドは何ですか? – gview

答えて

0

TLDR:ワイルドカード%には、特別なホストlocalhostは含まれていません。

ローカルホストからのログインを示すには、特別なホストlocalhostのログインを作成する必要があります(MySQLサーバーの観点から)。 %は、IPを使用してホストに接続している場合(または、--protocol=tcpオプションを使用してTCP経由でアクセスを強制する場合)のIPアドレスのワイルドカードです。したがって、ローカルソケット経由で接続する場合(コマンドラインでホストを指定しない場合に使用されます)、localhostホスト用に設定されたユーザが必要です。 6.2.3 Specifying Account Namesを参照してください。

ホストの値には、ホスト名またはIPアドレス(IPv4またはIPv6)を使用できます。 'localhost'という名前はローカルホストを示します。 IPアドレス'127.0.0.1'は、IPv4ループバックインターフェイスを示します。 IPアドレス'::1'は、IPv6ループバックインターフェイスを示します。

+0

実際には、tcpプロトコルの 'root @ 952fbb1e6c9e:/ usr/bin/mysql/install#/ usr/bin/mysql/install/bin/mysqlを使用している場合、MySQLクライアントでログインすることができます。--protocol = tcp -h mysql -P 3306 -u thalasoft -p パスワードを入力: MySQLモニタへようこそ。コマンドはで終わります。または\ g。 DockerコンテナのPHPクライアントがデフォルトでTCPプロトコルを使用しているかどうかを調べます。 – Stephane

関連する問題