Не мисля, че това е проблем с пристанището, заявката достига до местоназначението си. Използване на example@sqldat.com ще работи при влизане през командния ред (mysql -u root -p ), но не искате да го използвате за свързване с вашия код. Имайте предвид, че когато установявате връзката си, трябва да използвате host=localhost или host=127.0.0.1 изрично. Ако използвате IP адреса (дори и на същия сървър), ще получите отказан достъп.
[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)
Ето стъпките, които препоръчвам да предприемете:
- Създайте специален потребител, който можете да използвате за свързване във вашите скриптове.
-
Ако източникът на скрипта е същият сървър като MySQL.
CREATE USER '<user>'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'localhost'; -
Ако връзката винаги се установява от едно и също място, но различно от MySQL, изпълнете следното в командния ред.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'<IP_address>'; -
Ако източникът на връзката е различен, изпълнете следната команда.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'%';
Ето връзка към документацията ако имате въпроси.