Nemyslím si, že jde o problém s portem, požadavek se dostává do cíle. Pomocí [email protected]
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.
[[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)
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.