Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Redefinir a senha raiz do servidor MySQL

Por padrão, o MySQL Server será instalado com superusuário root sem nenhuma senha. Você pode se conectar ao servidor MySQL como root sem exigir senha ou digitando uma senha em branco. No entanto, se você definiu a senha para root e esqueceu ou não conseguiu recuperar a senha, precisará redefinir a senha de root para o MySQL.

O Manual de Referência do MySQL tem etapas detalhadas sobre como redefinir a senha do root, que são as seguintes:

O procedimento no Windows:
  1. Faça login no sistema Windows em que o MySQL está sendo executado como administrador.
  2. Pare o servidor MySQL se estiver em execução. Para um servidor que está sendo executado como um serviço do Windows, acesse o gerenciador de serviços:
    Menu Iniciar -> Painel de Controle -> Ferramentas Administrativas -> Serviços

    Em seguida, encontre o serviço MySQL na lista e pare-o.

    Se o seu servidor não estiver sendo executado como um serviço, talvez seja necessário usar o Gerenciador de Tarefas para forçá-lo a parar.
  3. Crie um arquivo de texto e coloque os seguintes comandos dentro dele em uma única linha:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
    
    Save the file with any name. For this example the file will be C:\mysql-init.txt.
  4. Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
  5. If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly. At the DOS command prompt, execute this command:
    C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

    O conteúdo do arquivo nomeado pela opção --init-file é executado na inicialização do servidor, alterando a senha do root. Depois que o servidor for iniciado com sucesso, você deve excluir C:\mysql-init.txt.

    Se você instalou o MySQL usando o MySQL Installation Wizard, pode ser necessário especificar uma opção --defaults-file:
    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe"
             --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"
             --init-file=C:\mysql-init.txt

    A configuração --defaults-file apropriada pode ser encontrada usando o Gerenciador de Serviços:

    Menu Iniciar -> Painel de Controle -> Ferramentas Administrativas -> Serviços

    Encontre o serviço MySQL na lista, clique com o botão direito nele e escolha a opção Propriedades. O campo Caminho para executável contém a configuração --defaults-file. Certifique-se de fornecer o argumento --init-file com o caminho completo do sistema para o arquivo, independentemente do seu diretório de trabalho atual
  6. Pare o servidor MySQL e reinicie-o no modo normal novamente. Se o servidor MySQL for executado como um serviço, inicie-o na janela Serviços do Windows. Se você iniciar o servidor manualmente, use qualquer comando que você normalmente usa.
  7. Conecte-se ao servidor MySQL usando a nova senha. Lembre-se também de excluir o arquivo mysql-init.txt quando terminar.

Para ambiente Unix e Linux, o procedimento para redefinir a senha de root é o seguinte:
  1. Faça logon no sistema Unix como usuário root do Unix ou como o mesmo usuário que o servidor mysqld executa.
  2. Localize o arquivo .pid que contém o ID do processo do servidor. A localização e o nome exatos desse arquivo dependem de sua distribuição, nome de host e configuração. Locais comuns são /var/lib/mysql/, /var/run/mysqld/ e /usr/local/mysql/data/. Geralmente, o nome do arquivo tem a extensão .pid e começa com mysqld ou com o nome do host do sistema.
    Pare o servidor MySQL enviando um kill normal (não kill -9) para o processo mysqld, usando o nome do caminho do arquivo .pid no seguinte comando:
    shell> kill `cat /mysql-data-directory/host_name.pid`

    Observe o uso de acentos graves em vez de aspas com o comando cat; isso faz com que a saída de cat seja substituída no comando kill.
  3. Crie um arquivo de texto e coloque o seguinte comando dentro dele em uma única linha:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

    Salve o arquivo com qualquer nome. Para este exemplo, o arquivo será ~/mysql-init.
  4. Reinicie o servidor MySQL com a opção especial --init-file=~/mysql-init:
    shell> mysqld_safe --init-file=~/mysql-init &

    O conteúdo do arquivo init é executado na inicialização do servidor, alterando a senha do root. Depois que o servidor for iniciado com sucesso, você deve excluir ~/mysql-init.
  5. Reinicie o servidor normalmente. Conecte-se ao servidor MySQL usando a nova senha.

Alternativamente, em qualquer plataforma, o cliente mysql pode ser usado para definir a nova senha, embora seja uma maneira menos segura de redefinir a senha (instruções detalhadas aqui):
  1. Pare o mysqld e reinicie-o com as opções --skip-grant-tables --user=root (os usuários do Windows omitem a parte --user=root).
  2. Conecte-se ao servidor mysqld com este comando:
    shell> mysql -u root
  3. Emita as seguintes instruções no cliente mysql:
    mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
        ->                   WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Substitua 'newpwd' pela senha de root real que você deseja usar.
  4. Você deve conseguir se conectar usando a nova senha.