The Blog

Falha no login no PhpMyAdmin


Mensagens de erro:

  • mysqli::real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’ (using password: YES)
  • mysqli::real_connect(): (HY000/1045): Access denied for user ‘root’@’localhost’ (using password: YES)

Se você já liberou o acesso no PhpMyAdmin e mesmo assim o usuário não consegue logar no painel, então acesse o terminal via SSH e acesse o MySQL para informar os comandos abaixo:

(informe sua senha após pressionar o enter)
mysql -h localhost -u root -p

Execute esse script SQL:

USE mysql;
UPDATE user SET plugin='' WHERE User='root';
FLUSH PRIVILEGES;

Agora você já consegue fazer login utilizando o root ou outros usuários que você tenha cadastrado e acesso liberado no PhpMyAdmin.

Mesmo executando essses passos acima, eu tive que fazer a reinstalação do MySQL no meu servidor Google Cloud. Algum arquivo foi corrompido ou houve alguma falha na instalação. Vamos lá para a lista de comandos utilizados.

Após diversas tentativas, não consegui acessar o banco via PhpMyAdmin nem SSH, então eu tive que entrar no modo de segurança para fazer o backup do banco e reinstalar o MySQL:

sudo mysqld_safe --skip-grant-tables --skip-networking

Depois disso é possível acessar o banco sem a utilização de senha:

mysql -u root

Exportando as tabelas do banco para um arquivo:

(Criando o arquivo no diretório)
sudo vim /var/www/meu_backup.sql

(Definindo as permissões de acesso)
sudo chmod 777 /var/www/meu_backup.sql

(Definindo o proprietário do arquivo)
sudo chown maksoud /var/www/meu_backup.sql

sudo mysqldump -u root -p base_de_dados > /var/www/meu_backup.sql

Agora eu vou no FTP e faço o download do arquivo ‘meu_backup.sql’ e realizo os testes de importação no servidor local. Tudo ok, agora eu vou reinstalar o MySQL.

(Parando a instância do MySQL)
sudo service mysql stop 

(Finalização forçada do MySQL)
sudo killall mysqld mysql 
(Finalização forçada do MySQL MariaDB)
sudo killall mysqld mariadb 

(Cópia dos arquivos)
sudo mv -iv /var/lib/mysql /var/tmp/mysql-backup 
(Excluindo todo o diretório do MySQL)
sudo rm -rf /var/lib/mysql* 

(Limpeza dos arquivos da instalação anterior)
sudo apt-get remove -y mysql-*
sudo apt-get purge -y mysql-*

sudo apt-get remove -y mariadb-*
sudo apt-get purge -y mariadb-*

sudo apt-get autoclean
sudo apt-get autoremove
sudo apt-get update

(Criando o diretório do MySQL e definindo as permissões de acesso)
sudo mkdir /var/lib/mysql
sudo chown mysql /var/lib/mysql
sudo chgrp mysql /var/lib/mysql

(instalação do MySQL)
sudo apt install mysql-server 

Agora que o MySQL foi instalado, execute o MySQL crie uma senha de acesso.

sudo mysql_secure_installation

Nesse passo tem algumas instruções para criação da senha. Você pode utilizar as mesmas opções que escolhi

Press y|Y for Yes, any other key for No: Y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
New password: crie-sua-senha-de-acesso-aqui!
Re-enter new password: repita-sua-senha-de-acesso-aqui!
Do you wish to continue with the password provided? Y

Após finalizar a instalação e configuração, agora você precisa acessar o MySQL para criar o seu usuário de acesso:

(Acesar o MySQL)
sudo mysql

(Criar usuário)
CREATE USER 'seu-nome'@'localhost' IDENTIFIED BY 'sua-senha';

(Atribuir os privilégios ao usuário)
GRANT ALL PRIVILEGES ON *.* TO 'seu-nome'@'localhost' WITH GRANT OPTION;

Agora seu usuário foi criado e os acessos definidos, acesse o PhpMyAdmin para criar sua base de dados. Caso a mensagem de erro persista e você encontre uma solução diferente, compartilhe a sua solução no campo de mensagens.

Para resolver as falhas dos campos que você não definiu como nulo ou datas 0000-00-00, execute o comando (SET GLOBAL sql_mode=”) para não exibir as mensagens de erro novamente.

Leave a comment