Antes de tudo, livre-se de --skip-grant-tables
com
service mysql restart
Em seguida, vamos garantir que os usuários root do mysql tenham a senha correta:
SELECT user,host FROM mysql.user WHERE password=PASSWORD('rootpassword');
Se nada voltar, corrija a senha assim:
UPDATE mysql.user SET password=PASSWORD('rootpassword') WHERE user='root';
FLUSH PRIVILEGES;
Em seguida, vamos garantir que todos os usuários tenham uma senha:
SELECT user,host FROM mysql.user WHERE password='';
Se algo voltar, remova os usuários:
DELETE FROM mysql.user WHERE password='';
FLUSH PRIVILEGES;
Quando vi a mensagem
when I try to execute any commands it informs me that im not authorized to do that and that im user ''@'localhost'. I've shut down the server and run it with --skip-grant-tables, which lets me log in as root and I can actually do stuff, but I'm not sure how to get normal, local passworded root logins back
então eu disse para mim mesmo: OMG ele tem logons anônimos. Por favor, remova-os da seguinte forma:
mysql -uroot -p -e"DELETE FROM mysql.user WHERE user=''; FLUSH PRIVILEGES;"
Por favor, também remova todas as referências para testar bancos de dados de mysql.db
mysql -uroot -p -e"DELETE FROM mysql.db WHERE LEFT(db,4)='test'; FLUSH PRIVILEGES;"
Isto irá garantir a sua instalação do mysql