Mysql parou de funcionar

0

O MySQL está instalado e funcionando no meu sistema, mas não consigo fazer login com nenhum usuário. Eu também não consigo iniciar / parar / status do servidor. Tudo que eu tenho é:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

/usr/bin/mysqladmin: connect to server at 'localhost' failed

erro: 'Acesso negado para o usuário' debian-sys-maint '@' localhost '(usando a senha: YES)

Nos registros:

Mar 24 08:30:13 debian /etc/mysql/debian-start[1074]: Upgrading MySQL tables if necessary.
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: Looking for 'mysql' as: /usr/bin/mysql
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/run/mysqld/mysqld.sock' '--host=localhost' '--socket=/var/run/mysqld/mysqld.sock' '--host=localhost' '--socket=/var/run/mysqld/mysqld.sock' 
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: /usr/bin/mysqlcheck: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) when trying to connect
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: FATAL ERROR: Upgrade failed
Mar 24 08:30:13 debian /etc/mysql/debian-start[1111]: Checking for insecure root accounts.

Eu consigo fazer o login depois de matar o processo e iniciar o mysql com mysqld --skip-grant-tables , mas não consigo redefinir a senha do debian-sys-maint:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'mypass';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

Atualizar

Com UPDATE mysql.user set password=PASSWORD('secret') where user='debian-sys-maint'; i posso redefinir minhas senhas, mas depois de reiniciar / reiniciar, tenho o mesmo problema com esses usuários / mysql novamente.

Como posso redefinir essa senha e por que o mysql parou de funcionar?

    
por tonymarschall 24.03.2012 / 08:42

2 respostas

2

Você pode iniciar o servidor mysql manualmente assim:

$ sudo mysqld --skip-grant-tables

Em seguida, você deve conseguir fazer o login sem uma senha válida. Para corrigir o problema do usuário debian-sys-maint , você pode obter a senha do arquivo /etc/mysql/debian.cnf . Sobrescreva a senha atual deste usuário com a que você encontra neste arquivo. Além disso, não se esqueça de sobrescrever a senha do root, caso tenha esquecido.

Quando terminar, reinicie o mysqld normalmente.

    
por 24.03.2012 / 09:17
1

quando rodando com skip grant, você precisa redefinir a senha com algo parecido com isto:

UPDATE mysql.user set password=PASSWORD('secret') where user='debian-sys-maint';

e não com GRANT.

(eu não testei se a sintaxe está correta, mas apenas faça uma atualização na tabela mysql.user!)

    
por 28.03.2012 / 12:46