Als du gerannt bist
mysql -u bill -p
und habe diesen Fehler bekommen
ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES)
mysqld erwartet, dass Sie sich als verbinden bill@localhost
Versuchen Sie zu erstellen bill@localhost
CREATE USER bill@localhost IDENTIFIED BY 'passpass';
grant all privileges on *.* to bill@localhost with grant option;
Wenn Sie eine Remoteverbindung herstellen möchten, müssen Sie entweder den DNS-Namen, die öffentliche IP oder 127.0.0.1 mithilfe von TCP / IP angeben:
mysql -u bill -p -hmydb@mydomain.com
mysql -u bill -p -h10.1.2.30
mysql -u bill -p -h127.0.0.1 --protocol=TCP
Sobald Sie sich angemeldet haben, führen Sie dies bitte aus
SELECT USER(),CURRENT_USER();
USER () berichtet, wie Sie versucht haben, sich in MySQL zu authentifizieren
CURRENT_USER () gibt an , wie Sie sich in MySQL aus der Tabelle mysql.user authentifizieren durften
Auf diese Weise erhalten Sie einen besseren Überblick darüber, wie und warum Sie sich bei MySQL anmelden durften. Warum ist es wichtig, diese Ansicht zu kennen? Dies hat mit dem Bestellprotokoll für die Benutzerauthentifizierung zu tun.
Hier ein Beispiel: Ich werde einen anonymen Benutzer auf meinem Desktop MySQL erstellen
mysql> select user,host from mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| lwdba | % |
| mywife | % |
| lwdba | 127.0.0.1 |
| root | 127.0.0.1 |
| lwdba | localhost |
| root | localhost |
| vanilla | localhost |
+---------+-----------+
7 rows in set (0.00 sec)
mysql> grant all on *.* to x@'%';
Query OK, 0 rows affected (0.02 sec)
mysql> select user,host from mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| lwdba | % |
| mywife | % |
| x | % |
| lwdba | 127.0.0.1 |
| root | 127.0.0.1 |
| lwdba | localhost |
| root | localhost |
| vanilla | localhost |
+---------+-----------+
8 rows in set (0.00 sec)
mysql> update mysql.user set user='' where user='x';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> select user,host from mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| | % |
| lwdba | % |
| mywife | % |
| lwdba | 127.0.0.1 |
| root | 127.0.0.1 |
| lwdba | localhost |
| root | localhost |
| vanilla | localhost |
+---------+-----------+
8 rows in set (0.00 sec)
mysql>
OK, schau mir zu, wie ich mich als anonymer Benutzer anmelde:
C:\MySQL_5.5.12>mysql -urol -Dtest -h127.0.0.1 --protocol=TCP
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.5.12-log MySQL Community Server (GPL)
Copyright (c) 2000, 2010, 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(),current_user();
+---------------+----------------+
| user() | current_user() |
+---------------+----------------+
| rol@localhost | @% |
+---------------+----------------+
1 row in set (0.00 sec)
mysql>
Die Reihenfolge der Authentifizierung ist sehr streng. Es prüft von den spezifischsten bis zu den geringsten. Ich habe über diesen Authentifizierungsstil im DBA StackExchange geschrieben .
Vergessen Sie nicht, bei Bedarf explizit TCP als Protokoll für den MySQL-Client aufzurufen.
FLUSH PRIVILEGES
?