{"id":141,"date":"2017-11-27T16:57:00","date_gmt":"2017-11-27T18:57:00","guid":{"rendered":"http:\/\/xaxowareti.com.br\/?p=141"},"modified":"2017-11-27T16:57:00","modified_gmt":"2017-11-27T18:57:00","slug":"reset-root-password-no-mysql-5-7","status":"publish","type":"post","link":"https:\/\/xaxowareti.com.br\/?p=141","title":{"rendered":"Reset root password no MySQL 5.7.*"},"content":{"rendered":"<p>Estava muito tempo sem postar, mas hoje eu passei uma dor de cabe\u00e7a muito grande at\u00e9 resolver este problema, ent\u00e3o eu tinha que postar essa solu\u00e7\u00e3o.<\/p>\n<p>Eu estava com o Ubuntu 14.10 e resolvi atualizar ele para a \u00faltima vers\u00e3o hoje (17\/09\/2016), Ubuntu 16.04.<\/p>\n<p>Tudo estava correndo bem, mesmo tendo que reinstalar\/reconfigurar algumas bibliotecas\/aplicativos.<\/p>\n<p>O \u00faltimo passo da verifica\u00e7\u00e3o foi tentar rodar meus aplicativos web que usam MySQL. A surpresa inicial foi que o MySQL havia sido desinstalado. Verifiquei se os arquivos de dados, com todos os meus bancos de dados, estavam salvos. Gra\u00e7as a minha sorte tudo estava a salvo.<\/p>\n<p>Primeiramente eu apenas fiz a instala\u00e7\u00e3o dos pacotes do MySQL, onde a vers\u00e3o mais nova era a 5.7:<\/p>\n<pre>$ sudo apt-get install mysql-server-5.7 mysql-client-5.7<\/pre>\n<p>Ap\u00f3s finalizar a instala\u00e7\u00e3o, eu tentei logar. O problema ocorreu justamente nesse momento, quando eu tentei logar no MySQL:<\/p>\n<pre>$ mysql -u root\r\nERROR 1045: Access denied for user: 'root'@'localhost'<\/pre>\n<p>Antes de fazer a atualiza\u00e7\u00e3o do Ubuntu meu MySQL n\u00e3o tinha senha de root. Ela era vazia. Eu apenas fazia\u00a0<strong><em>mysql -u root<\/em><\/strong>\u00a0e o acesso seguia com sucesso.<\/p>\n<p>Ent\u00e3o o que eu deveria fazer? Bem, provavelmente a senha de root foi alterada ou qualquer outro problema que eu n\u00e3o sei o que foi. A solu\u00e7\u00e3o ent\u00e3o era alterar a senha de root. Eu passe mais de 5 horas tentando alterar a senha, lendo v\u00e1rios sites, blogs, jornais, revistas, contato extra-terrestre, \u2026, inclusive o site oficial do MySQL, e tudo repetia as mesmas coisas. At\u00e9 que uma luz veio e me levou at\u00e9 uma\u00a0<a title=\"MySQL fails on: mysql \u201cERROR 1524 (HY000): Plugin 'auth_socket' is not loaded\u201d\" href=\"http:\/\/stackoverflow.com\/questions\/37879448\/mysql-fails-on-mysql-error-1524-hy000-plugin-auth-socket-is-not-loaded\" target=\"_blank\" rel=\"noopener\">postagem no StackOverflow<\/a>\u00a0com um erro n\u00e3o t\u00e3o igual, mas com a mesma solu\u00e7\u00e3o.<\/p>\n<p>Todos os sites diziam a mesma coisa, mas eu acabei encontrando o que faltava. Segue abaixo:<\/p>\n<p>1. Primeiro devemos parar o servi\u00e7o do MySQL:<\/p>\n<pre>$ sudo service mysql stop<\/pre>\n<p>2. Em seguida iniciamos o MySQL em modo seguro, sem as op\u00e7\u00f5es de permiss\u00f5es. Isso vai servir para voc\u00ea alterar a senha. Mas o segredo vem depois:<\/p>\n<pre>$ sudo mysqld_safe --skip-grant-tables &amp;<\/pre>\n<p>Poder\u00e1 ocorrer o seguinte erro:<\/p>\n<pre>mysqld_safe Logging to '\/var\/log\/mysql\/error.log'.\r\nmysqld_safe Logging to '\/var\/log\/mysql\/error.log'.\r\nmysqld_safe Directory '\/var\/run\/mysqld' for UNIX socket file don't exists.<\/pre>\n<p><code>Caso ocorra, execute o seguinte comando para criar o diret\u00f3rio onde ficar\u00e1 o socket do mysql:<\/code><\/p>\n<pre>$ sudo mkdir -p \/var\/run\/mysqld\r\n$ sudo chown mysql:mysql \/var\/run\/mysqld<\/pre>\n<p>3. Ap\u00f3s iniciar o servidor voc\u00ea vai acessar o cliente MySQL com usu\u00e1rio root, sem senha:<\/p>\n<pre>$ mysql -u root<\/pre>\n<p>4. Agora vamos alterar a senha do usu\u00e1rio root.<\/p>\n<p><strong>Aqui \u00e9 que est\u00e1 o SEGREDO.<\/strong>\u00a0No MySQL 5.7 foi alterado algumas coisas no banco de dados de sistema\u00a0<strong><em>mysql<\/em><\/strong>. A tabela\u00a0<strong><em>user<\/em><\/strong>\u00a0n\u00e3o possui mais a coluna\u00a0<del><strong><em>password<\/em><\/strong><\/del>, o nome agora se chama\u00a0<strong><em>authentication_string<\/em><\/strong>. Ent\u00e3o fa\u00e7a a altera\u00e7\u00e3o da senha da seguinte maneira:<\/p>\n<pre>mysql&gt; use mysql;\r\nmysql&gt;\u00a0update user set authentication_string=PASSWORD(\"SuaSenha\") where User='root';<\/pre>\n<p>Bom, a maioria dos sites paravam a\u00ed, o que n\u00e3o resolvia o problema. O que faltava era um pequeno detalhes, devemos alterar o campo\u00a0<strong><em>plugin<\/em><\/strong>\u00a0setando o mecanismo padr\u00e3o de verifica\u00e7\u00e3o do password. Ent\u00e3o segue abaixo:<\/p>\n<pre>mysql&gt;\u00a0update user set plugin=\"mysql_native_password\";\r\nmysql&gt;\u00a0flush privileges;\r\nmysql&gt;\u00a0quit;<\/pre>\n<p>Fieto isso, a senha do root foi alterada e est\u00e1 pronto para ser acessado.<\/p>\n<p>5. D\u00ea um stop no MySQL e depois inicie normalmente o servi\u00e7o:<\/p>\n<pre>$ sudo mysqladmin shutdown # essa foi a forma mais f\u00e1cil que eu achei para matar o mysqld_safe<\/pre>\n<p>Caso n\u00e3o d\u00ea certo, voc\u00ea tamb\u00e9m pode tentar matar o MySQL localizando o id do processo e dando um kill nele:<\/p>\n<pre>$ ps -ef | grep mysql\r\n$ sudo kill -9 [id dos processos que voc\u00ea achou no comando anterior]<\/pre>\n<p>Ap\u00f3s parar o servi\u00e7o, inicie ele normalmente:<\/p>\n<pre>$ sudo service mysql start<\/pre>\n<p>Pronto, agora \u00e9 s\u00f3 conectar e correr para o abra\u00e7o:<\/p>\n<pre>$ mysql -u root -p<\/pre>\n<p>Ent\u00e3o era isso galera. Queria apenas registrar este detalhe para ajudar mais pessoas, j\u00e1 que a maioria dos sites possui informa\u00e7\u00f5es bem antigas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estava muito tempo sem postar, mas hoje eu passei uma dor de cabe\u00e7a muito grande at\u00e9 resolver este problema, ent\u00e3o eu tinha que postar essa solu\u00e7\u00e3o. Eu estava com o Ubuntu 14.10 e resolvi atualizar ele para a \u00faltima vers\u00e3o hoje (17\/09\/2016), Ubuntu 16.04. Tudo estava correndo bem, mesmo tendo que reinstalar\/reconfigurar algumas bibliotecas\/aplicativos. O [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-141","post","type-post","status-publish","format-standard","hentry","category-geral"],"_links":{"self":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=141"}],"version-history":[{"count":1,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/141\/revisions"}],"predecessor-version":[{"id":142,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/141\/revisions\/142"}],"wp:attachment":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}