Primeiro, verifique se o servidor mysql está realmente rolando. Como root run:
service mysql restart
Se nenhum erro ocorrer continue lendo, caso contrário, reinstale o servidor mysql com apt-get install --reinstall mysql-server
.
Em seguida, verifique o arquivo de configuração do mysql /etc/mysql/my.cnf
e procure pelos seguintes parâmetros:
user = mysql
...
bind-address = 127.0.0.1
Altere-os se necessário, reinicie o servidor e tente conectar-se a um dos itens a seguir:
mysql -u root
mysql -u root -p
mysql -u root -p -h localhost
mysql -u root -p -h 127.0.0.1
Se você ainda não conseguir fazer login, tente alterar o /etc/apparmor.d/usr.sbin.mysqld
da seguinte forma:
Pesquise
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
Substituir por
/{,var/}run/mysqld/mysqld.pid w,
/{,var/}run/mysqld/mysqld.sock w,
Reinicie o serviço apparmor com service apparmor restart
e tente novamente conectar-se ao mysql. Se ainda assim não tiver sorte, pare o servidor mysql e execute-o novamente sem tabelas de permissões:
sudo service mysql stop
sudo mysqld --skip-grant-tables &
Agora você deve poder logar no mysql sem senha ( mysql -u root
). Dê uma olhada no que está acontecendo na sua mesa de usuários:
select Host, User, Password from mysql.user;
Você deve ter 4 usuários root, verifique se o nome do host está correto e se todos têm uma senha. Tente redefinir a senha com uma nova:
update mysql.user set Password=PASSWORD('YOUR-PASSWORD');
flush privileges;
exit;
Agora, sudo killall mysqld
e sudo service mysql restart
e tente novamente para se conectar às novas credenciais.