Jag tror inte att detta är ett hamnproblem, förfrågan når sin destination. Använda example@sqldat.com 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.
[example@sqldat.com ~]# mysql --host=127.0.0.1 --protocol=TCP -u root -p
Enter password:
mysql>
[example@sqldat.com ~]# 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.