Jag tror inte att detta är ett hamnproblem, förfrågan når sin destination. Använda [email protected]
kommer att fungera när du loggar in via kommandoraden (mysql -u root -p
) men du vill inte använda den för att ansluta med din kod. Tänk på att när du upprättar din anslutning måste du använda host=localhost
eller host=127.0.0.1
uttryckligen. Om du använder IP-adressen (även på samma server) kommer du att nekas åtkomst.
[[email protected] ~]# mysql --host=127.0.0.1 --protocol=TCP -u root -p
Enter password:
mysql>
[[email protected] ~]# mysql --host=192.168.1.10 --protocol=TCP -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'hostname' (using password: YES)
Här är stegen jag rekommenderar att du tar:
- Skapa en dedikerad användare som du kan använda för att ansluta i dina skript.
-
Om skriptkällan är samma server som MySQL.
CREATE USER '<user>'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'localhost';
-
Om anslutningen alltid upprättas från samma plats men en annan plats än MySQL, kör följande på kommandoraden.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'<IP_address>';
-
Om källan till anslutningen varierar, kör följande kommando.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'%';
Här är en länk till dokumentationen om du har några frågor.