Configurando a senha do usuário root do MySQL no OS X

Acabei de instalar o MySQL no Mac OS X. O próximo passo foi definir a senha do usuário root, então fiz o seguinte:

  1. Inicie o aplicativo do terminal para acessar a linha de comando do Unix.
  2. Sob o prompt do Unix, eu executei estes comandos:

    $ cd /usr/local/mysql/bin $ ./mysqladmin -u root password 'password' 

Mas, quando eu executo o comando

$ ./mysql -u root , esta é a resposta:

 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 224 Server version: 5.5.13 MySQL Community Server (GPL) Copyright (c) 2000, 2010, 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> 

Eu posso entrar na linha de comando mysql sem qualquer senha!

Por que é isso?

Tente o comando FLUSH PRIVILEGES quando você entrar no terminal do MySQL. Se isso não funcionar, tente o seguinte conjunto de comandos, enquanto no terminal MySQL

 $ mysql -u root mysql> USE mysql; mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit 

Altere NEWPASSWORD com qualquer senha que você desejar. Deve estar tudo pronto!

Atualização : A partir do MySQL 5.7, o campo de password foi renomeado para authentication_string . Ao alterar a senha, use a seguinte consulta para alterar a senha. Todos os outros comandos permanecem os mesmos:

 mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root'; 

Se você não se lembra da senha que definiu para root e precisa redefini-la, siga estas etapas:

  1. Pare o servidor mysqld, isso varia de acordo com a instalação
  2. Executar o servidor no modo de segurança com desvio de privilégios

sudo mysqld_safe --skip-grant-tables;

  1. Em uma nova janela, conecte-se ao database, defina uma nova senha e libere as permissions e saia:

mysql -u root

Para o MySQL mais antigo que o MySQL 5.7, use:

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

Para uso do MySQL 5.7+:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

Atualizar e sair:

FLUSH PRIVILEGES;

\q

  1. Pare o servidor de modo de segurança e inicie o servidor regular novamente. A nova senha deve funcionar agora. Caiu como uma luva para mim 🙂

Depois de instalar o MySQL, você precisará estabelecer a senha “root”. Se você não estabelecer uma senha de root, então, bem, não há senha de root, e você não precisa de uma senha para entrar.

Então, dito isto, você precisa estabelecer uma senha de root.

Usando terminal, digite o seguinte:

Instalação: Defina a senha do usuário root:

 /usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE 

Se você cometeu um erro ou precisa alterar a senha do root, use o seguinte:

Alterar senha de root:

 cd /usr/local/mysql/bin/ ./mysql -u root -p > Enter password: [type old password invisibly] use mysql; update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root'; flush privileges; quit 

As instruções fornecidas no site mysql são tão claras, do que as acima mencionadas

 1. sudo /usr/local/mysql/support-files/mysql.server stop 2) sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables 3) /usr/local/mysql/support-files/mysql 4) mysql> FLUSH PRIVILEGES; 5) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 6) Ctrl + z 7) sudo /usr/local/mysql/support-files/mysql.server start 8) /usr/local/mysql/support-files/mysql -u root -p 9) enter the new password ie MyNewPass 

http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

  1. Pare o servidor mysqld.

    • Mac OSX: System Preferences > MySQL > Stop MySQL Server
    • Linux (do terminal): sudo systemctl stop mysqld.service
  2. Inicie o servidor no modo de segurança com desvio de privilégios

    • Do terminal: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. Em uma nova janela de terminal:

    • sudo /usr/local/mysql/bin/mysql -u root
  4. Isto irá abrir a linha de comando do mysql. A partir daqui, digite:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

  5. Pare o servidor mysqld novamente e reinicie-o no modo normal.

    • Mac OSX (do terminal): sudo /usr/local/mysql/support-files/mysql.server restart
    • Terminal Linux: sudo systemctl restart mysqld

Para o novo Mysql 5.7, por alguma razão, os comandos bin do Mysql não estão anexados ao shell:

  1. Reinicie o Mac após a instalação.

  2. Inicie o Mysql:

    Preferências do Sistema> MySQL> botão Iniciar

  3. Vá para a pasta de instalação do Mysql no terminal:

    $ cd /usr/local/mysql/bin/

  4. Acesso ao Mysql:

    $ ./mysql -u root -p

e insira a senha inicial dada à instalação.

  1. Na senha de alteração do terminal do Mysql:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

No terminal, escreva mysql -u root -p e pressione Return. Digite a senha atual do mysql que você deve ter anotado. E defina a senha SET PASSWORD = PASSWORD('new_password');

Por favor, consulte esta documentação aqui para mais detalhes.

Se você esqueceu a senha de root do MySQL, não consegue se lembrar ou querer entrar … você pode redefinir a senha do database mysql a partir da linha de comando no Linux ou OS X contanto que você saiba a senha do usuário root da checkbox você está em:

(1) Pare o MySQL

 sudo /usr/local/mysql/support-files/mysql.server stop 

(2) Inicie no modo de segurança:

 sudo mysqld_safe --skip-grant-tables 

(3) Este será um comando em andamento até que o processo termine, então abra outra janela shell / terminal , efetue login sem uma senha:

 mysql -u root UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; 

No comando UPDATE acima apenas substitua a ‘senha’ por sua própria nova senha, certifique-se de manter as aspas

(4) Salve e completamente

 FLUSH PRIVILEGES; \q 

(5) Inicie o MySQL

 sudo /usr/local/mysql/support-files/mysql.server start 

Quando instalei o OS X Yosemite, tive problema com o Mysql. Eu tentei muitos methods, mas nenhum funcionou. Eu realmente encontrei um jeito bem fácil. Tente isso.

  1. Primeiro, efetue login no terminal a partir dos privilégios su.

sudo su

  1. pare o mysql

sudo /usr/local/mysql/support-files/mysql.server stop

  1. iniciar no modo de segurança:

sudo mysqld_safe --skip-grant-tables

  1. abra outro terminal, faça o login como su privilégios, logue no mysql sem senha

mysql -u root

  1. mudar a senha

UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

  1. liberar privilégios

FLUSH PRIVILEGES;

  1. Você terminou agora

Se você não consegue lembrar sua senha, a resposta do @ radtek funcionou para mim, exceto no meu caso eu configurei o MySQL usando brew, o que significava que os passos 1 e 2 de sua resposta tinham que ser mudados para:

  1. /usr/local/bin/mysql.server stop

  2. /usr/local/bin/mysqld_safe --skip-grant-tables

Nota: a falta de sudo .

Parando o servidor MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

Iniciando o MySQL no modo de segurança

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

Mudando a senha do root

/usr/local/mysql/bin/mysql -u root

 use mysql; UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root'; FLUSH PRIVILEGES; exit 

Testando

Execute /usr/local/mysql/bin/mysql -u root

Agora digite a nova senha para começar a usar o MySQL.

Se você esqueceu sua senha ou quer mudar para o seu mysql:

  1. inicie seu terminal e digite:
 sudo su 
  1. Insira o passe para o seu sistema
  2. Pare seu mysql:
 sudo /usr/local/mysql/support-files/mysql.server stop 
  1. Deixe esta janela ABERTA, execute a segunda janela do terminal e insira aqui:
 mysql -u root 
  1. E mude sua senha para o mysql:
 UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; 

onde “new_password” – seu novo passe. Você não precisa do passe antigo para o mysql.

  1. Liberar, desistir e verificar seu novo passe:
 FLUSH PRIVILEGES; 
  1. Feche todas as janelas e verifique seu novo passe para o mysql. Boa sorte.

Isto é o que exatamente funcionou para mim:

  1. Certifique-se de que nenhum outro processo MySQL esteja sendo executado. Para verificar isso, faça o seguinte:

      a.From the terminal, run this command: lsof -i:3306 If any PID is returned, kill it using kill -9 PID b. Go To System Preferences > MySQL > check if any MySQL instances are running, stop them. 
  2. Inicie o MySQL com o comando:

     sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 
  3. A senha para cada usuário é armazenada na tabela mysql.user sob as colunas User e authentication_string, respectivamente. Podemos atualizar a tabela como:

     UPDATE mysql.user SET authentication_string='your_password' where User='root' 

Muita coisa mudou para o MySQL 8. Descobri que a seguinte modificação da documentação do MySQL 8.0 “Como redefinir a senha do root” funciona com o Mac OS X.

Crie um arquivo temporário $HOME/mysql.root.txt com o SQL para atualizar a senha de root:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

Isso usa mysql_native_password para evitar que o plugin de autenticação ‘caching_sha2_password’ não possa ser carregado , o que eu recebo se eu omitir a opção.

Pare o servidor, inicie com uma opção --init-file para definir a senha root e, em seguida, reinicie o servidor:

mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start