Redefinir Senha do MySQL não funciona (não é possível conectar sem tabelas concedidas) no OSX [closed]

4

Deixe-me começar por dizer que consultei vários posts (ambos aqui e outros na internet e no artigo no mysql.com sobre como redefinir a senha do administrador) sobre como redefinir a senha do mysql, mas nada parece funcionar para mim. Ah, eu também sou relativamente novo em trabalhar na linha de comando.

Abaixo da "solução" que parece funcionar para todos, mas não para mim:


Last login: Mon Nov  3 12:02:21 on console
maurice@Maurices-MacBook-Pro:~$ sudo /usr/local/mysql/support-files/mysql.server stop
Password:
Shutting down MySQL
. SUCCESS! 
maurice@Maurices-MacBook-Pro:~$ sudo mysqld_safe --skip-grant-tables
141103 12:25:35 mysqld_safe Logging to '/usr/local/mysql/data/Maurices-MacBook-Pro.local.err'.
141103 12:25:35 mysqld_safe A mysqld process already exists
maurice@Maurices-MacBook-Pro:~$ 

Eu não sei de onde esse outro processo está vindo e não tenho ideia de como fechar isso. Se eu continuar seguindo as instruções e abrir uma nova guia do console, recebo o seguinte:


Last login: Mon Nov  3 12:25:16 on ttys000
maurice@Maurices-MacBook-Pro:~$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
maurice@Maurices-MacBook-Pro:~$ sudo mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
maurice@Maurices-MacBook-Pro:~$ 

Não consigo entrar no mysql para atualizar a senha. Eu posso me comunicar com o MySQL através do comando mysql , mas (é claro) não posso fazer nenhuma pergunta:


maurice@Maurices-MacBook-Pro:~$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user'
mysql> 

Passei a noite inteira ontem à procura de soluções, mas não consigo encontrar nada em lugar nenhum. Por favor, lembre-se de que sou relativamente novo para trabalhar na linha de comando, por isso, se eu ignorar algo realmente básico; desculpe!

Eu realmente espero que alguém conheça uma solução, porque eu estou sem opções

Editar (solução): Paul Haldane me indicou na direção certa. Eu esqueci que eu adicionei um arquivo com.mysql.mysql.plist que eu carreguei via launchctl na inicialização para iniciar automaticamente o MySQL na inicialização. Primeiro fazendo um sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysql.plist parou o MySQL e me deixou entrar no modo de segurança.

Tão feliz agora:)

    
por Maurice 03.11.2014 / 12:33

1 resposta

5

Esse comportamento implica que há um daemon do MySQL já em execução quando você tenta iniciar o novo sem autenticação. Existem duas causas possíveis para isso. 1. o comando mysql.server stop não está funcionando apesar de reportar sucesso ou 2. há um processo de supervisor em execução que reinicia automaticamente o servidor se ele morrer. Você deve ser capaz de dizer o que está acontecendo com você, observando os processos em execução usando ps. Experimente

ps uaxww | grep -i mysql

Isso lhe dará uma lista de processos. Se o mysqld principal está sendo executado há algum tempo, é porque 1, se apenas começou, provavelmente será a causa 2. De qualquer maneira, mate os processos usando o comando kill (via sudo). Apenas matança normal - não use -9, pois isso não dará ao MySQLd a chance de ser encerrado de forma limpa. Depois disso, você poderá iniciar o daemon sem autenticação.

    
por 03.11.2014 / 13:02

Tags