Não é possível acessar a GUI do Plesk: Acesso negado ao usuário 'admin'@'localhost' (usando senha: YES)
imprimir- 0
Sintomas
A interface do Plesk está inacessível. Uma das seguintes mensagens de erro é mostrada em um navegador web ou ao executar alguns utilitários do Plesk, como plesk db
ou plesk login
:
ERROR: 500 Plesk\Exception\Database Zend_Db_Adapter_Exception: SQLSTATE[HY000] [1045] Access denied for user 'admin'@'localhost' (using password: YES) |
ERROR: PleskFatalException Unable to connect to database: saved admin password is incorrect. 0: common_func.php3:93 psaerror(string 'Unable to connect to database: saved admin password is incorrect.') 1: auth.php3:127 Additionally, an exception has occurred while trying to report this error: Zend_Exception No entry is registered for key &;translate&; (Abstract.php:144) |
Causa
A senha com hash no arquivo /etc/psa/.psa.shadow
, que é usado para acessar o banco de dados Plesk, não corresponde à senha de administrador no banco de dados 'mysql'.
-
Faça um backup do arquivo
/etc/psa/.psa.shadow
:# cp /etc/psa/.psa.shadow /etc/psa/.psa.shadow.bak -
Insira a nova senha em
/etc/psa/.psa.shadow
texto simples:# echo 'new_password' > /etc/psa/.psa.shadow Note: não se esqueça de substituir a nova senha do comando pela senha adequada.
-
Defina a mesma senha usando o utilitário Plesk para armazená-la criptografada em
/etc/psa/.psa.shadow
:# PSA_PASSWORD=new_password /usr/local/psa/admin/sbin/ch_admin_passwd Note: se este comando produzir alguma saída, aplique o método 2.
-
Conecte-se ao servidor Plesk via SSH .
-
Com o comando abaixo, verifique se a diretiva
old-passwords
existe no arquivo de configuração do MySQLmy.cnf
(nenhuma saída significa que ela não existe):# grep -ir old-passwords /etc/my*
- Se existir, remova-o usando um editor de texto .
-
Obtenha uma senha com hash do usuário administrador do MySQL e copie-a para a área de transferência:
Note: Certifique-se de que haja apenas uma senha especificada no arquivo.
# grep AES /etc/psa/.psa.shadow Aqui está um exemplo de senha com hash:
$AES-128-CBC$ZmY/EEpy1+TwCNq5kalqSA==$Pd02kf4TTlpXdi/qyeo92w== -
Modifique o
my.cnf
arquivo:4.1. Abra o
my.cnf
arquivo em um editor de texto. Neste exemplo, estamos usando o editor vi :-
em distribuições baseadas em CentOS/RHEL
# vi /etc/my.cnf
-
em distribuições baseadas em Debian/Ubuntu
# vi /etc/mysql/my.cnf
4.2. Adicione a
skip-grant-tables
linha abaixo da[mysqld]
seção:[mysqld]
skip-grant-tables
<...>4.3. Salve as alterações e feche o arquivo.
-
-
Reinicie o MySQL. O comando depende da versão do MySQL e do sistema operacional:
# service mariadb restart
# service mysql restart
# service mysqld restart -
Conecte-se ao MySQL:
# plesk db -
Mude para o banco de dados mysql:
mysql> use mysql; -
Encontre a versão do MySQL:
mysql> SELECT VERSION(); -
Recarregue o cache das tabelas ACL:
mysql> FLUSH PRIVILEGES; Note: Depois que o comando acima for executado, não saia da sessão atual do MySQL, pois este comando carrega as tabelas de concessão de volta.
-
Restaure o usuário administrador do MySQL:
-
Para MySQL 5.1 até 5.6 e MariaDB 5.5 até 10.4
-
Elimine o usuário administrador atual:
mysql> DROP USER 'admin'@'localhost'; -
Crie um novo usuário administrador com a senha com hash da etapa 3:
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'HASHED_PASSWORD_FROM_STEP_3'; -
Conceda todas as permissões ao usuário administrador:
mysql> GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION; -
Saia do MySQL:
mysql> exit
-
-
Para MariaDB 10.5
-
Elimine o usuário administrador atual:
mysql> DROP USER 'admin'@'localhost'; -
Crie um novo usuário administrador com a senha com hash da etapa 3:
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('HASHED_PASSWORD_FROM_STEP_3'); -
Conceda todas as permissões ao usuário administrador:
mysql> GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
-
Saia do MySQL:
mysql> exit
-
-
Para MySQL 5.7 até 8.0
-
Elimine o usuário administrador atual:
mysql> DROP USER 'admin'@'localhost'; -
Crie um novo usuário administrador com a senha com hash da etapa 3:
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'HASHED_PASSWORD_FROM_STEP_3'; -
Conceda todas as permissões ao usuário administrador:
mysql> GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
-
Saia do MySQL:
mysql> exit
-
-
-
Remova a
skip-grant-tables
linha domy.cnf
arquivo (etapa 4). -
Reinicie o MySQL:
# service mariadb restart # service mysql restart # service mysqld restart