Eu não acho que isso seja um problema de porta, a solicitação está chegando ao destino. Usando
[email protected]
funcionará ao efetuar login através da linha de comando (mysql -u root -p
), mas você não deseja usá-lo para se conectar ao seu código. Tenha em mente que ao estabelecer sua conexão, você precisa usar host=localhost
ou host=127.0.0.1
explicitamente. Se você usar o endereço IP (mesmo no mesmo servidor), terá acesso negado. [[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)
Aqui estão as etapas que eu recomendo:
- Crie um usuário dedicado que você possa usar para se conectar em seus scripts.
-
Se a fonte do script for o mesmo servidor que o MySQL.
CREATE USER '<user>'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'localhost';
-
Se a conexão for sempre estabelecida no mesmo local, mas em um local diferente do MySQL, execute o seguinte na linha de comando.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'<IP_address>';
-
Se a origem da conexão variar, execute o comando a seguir.
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'%';
Aqui está um link para a documentação se você tiver quaisquer perguntas.