Nemyslím si, že jde o problém s portem, požadavek se dostává do cíle. Pomocí example@sqldat.com bude fungovat při přihlášení přes příkazový řádek (mysql -u root -p ), ale nechcete jej používat pro připojení ke svému kódu. Mějte na paměti, že při navazování připojení musíte použít host=localhost nebo host=127.0.0.1 výslovně. Pokud použijete IP adresu (i na stejném serveru), bude vám přístup odepřen.
[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)
Zde jsou kroky, které doporučuji provést:
- Vytvořte vyhrazeného uživatele, kterého můžete použít pro připojení ve skriptech.
-
Pokud je zdrojem skriptu stejný server jako MySQL.
CREATE USER '<user>'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'localhost'; -
Pokud je připojení vždy navázáno ze stejného místa, ale z jiného místa než MySQL, spusťte na příkazovém řádku následující.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'<IP_address>'; -
Pokud se zdroj připojení liší, spusťte následující příkaz.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'%';
Zde je odkaz na dokumentaci pokud máte nějaké dotazy.