Entre no mysql mysql -u yourname -p yourpassword
, depois siga assim
mysql>use mysql;
mysql>select host,user from user;
Pode dar o seguinte resultado:
+-----------+------------------+
| host | user |
+-----------+------------------+
| 127.0.0.1 | root |
| ::1 | root |
| localhost | debian-sys-maint |
| localhost | root |
+-----------+------------------+
4 rows in set (0.00 sec)
Se você ver isso, significa que você só pode conectar o mysql no localhost, então você precisa seguir os seguintes passos:
mysql>GRANT ALL PRIVILEGES ON *.* TO username@"%" IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)
mysql>flush privileges;
Query OK, 0 rows affected (0.00 sec)
"%"
significa que qualquer host pode fazer logon remotamente no servidor, se você quiser restringir o acesso a apenas uma máquina, precisará alterar o "%"
para o endereço IP da máquina que deseja permitir a conexão.
Se funcionar, você select host,user from user;
receberá as seguintes informações:
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | debian-sys-maint |
| localhost | root |
+-----------+------------------+
5 rows in set (0.00 sec)
Saia do mysql, edite /etc/mysql/my.cnf
, encontre
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
anote ou você pode deletá-lo (não recomendado), reinicie seu servidor mysql, usando service mysql restart
, se você fizer isso como eu, você pode resolver o problema.
Funciona bem no meu computador (Ubuntu 14.04 + MySQL 5.5)