1

私はかなり長い間この問題に直面してきました。実際にインストールされたphpとmysqlにxamppをインストールしました。mysql には常にデフォルトのユーザー root (パスワードなし) が付属しています。root(パスワードなし)を使用してログインできますが、何もできません。任意のデータベースを使用し、任意のテーブルを選択し、パスワードを変更します..これらの操作を実行できません。メッセージを取得しようとすると

mysql> use mysql
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
mysql>

ここで行った手順をお見せしましょう..

ログイン成功。

C:\xampp\mysql\bin>mysql.exe -u root;
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

これを実行してユーザーリストを表示しました

mysql> select user();
+-----------------+
| user()          |
+-----------------+
| root;@localhost |
+-----------------+
1 row in set (0.00 sec)

私もこれを実行しました

mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| @localhost     |
+----------------+
1 row in set (0.00 sec)

root@localhost として表示されない理由がわかりません。正しい方法ですか?

次に、興味深いことに、以下のメッセージが表示されます

mysql> show grants;
+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+
1 row in set (0.00 sec)

Grant USAGE ... そうですか?

DBから何かをするのを止めただけです。

4

2 に答える 2

0

Vagrant を介して MySQL にアクセスしようとしたときに、同じ問題が発生しました。実行SELECT CURRENT_USER();中に、 の 1 行の結果も取得し@localhostました。

解決策は、次の方法で MySQL を起動することでした。

mysql -u root -p;- これを実行すると、パスワードの入力を求めるプロンプトが表示されます。この場合root、入力して Enter キーを押すと、実際の root としてログインし、期待どおりにコマンドを実行できました。

于 2016-09-27T15:26:03.603 に答える
0

これの代わりに:

C:\xampp\mysql\bin>mysql.exe -u root;

これを試して:

C:\xampp\mysql\bin>mysql.exe -u root -p

Enter キーを押します。末尾にセミコロンを付けずに、Enter キーを押します。パスワードをお持ちでない場合は、Enter キーを押してください。

これを作成すると:

select user();

表示されるのは次のとおりです。

root@localhost

それ以外の:

//you are logged in as the root user; instead of some "root;" user. 
root;@localhost
于 2013-06-13T20:01:12.957 に答える