MySQL localhost != 127.0.0.1?
Diese Diskrepanz entsteht durch die Socket-Nutzung von MySQL, wenn es ohne Hostnamen oder mit „localhost“ aufgerufen wird ' Hostname. Wie unten gezeigt, stellt die Verwendung von MySQL mit dem Hostnamen „127.0.0.1“ eine Verbindung über TCP/IP-Sockets her:
$ mysql -u root -h 127.0.0.1 -e 'show tables' created_from_host; +-----------------------------+ | Tables_in_created_from_host | +-----------------------------+ | test | +-----------------------------+
Die Verwendung von „localhost“ stellt jedoch eine Verbindung über UNIX-Sockets her, was zu folgendem Fehler führt:
$ mysql -u root -h localhost -e 'show tables' created_from_host; ERROR 1049 (42000): Unknown database 'created_from_host'
So gewähren Sie ALLE Berechtigungen für ALLE Datenbanken von ALLEN Hosts für root?
Um dem „Root“-Benutzer uneingeschränkte Berechtigungen zu gewähren, führen Sie die folgende SQL-Anweisung aus:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWarum behandelt MySQL „localhost' anders als „127.0.0.1'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!