MySQL no Raspbian sem acesso e não pede senha na instalação

Boa noite.
Estou utilizando o raspberry PI 3 B, quando instalo o MySQL em nenhum momento me pede para inserir a nova senha do root e quando tenho acessá-lo recebo a mensagem:

mysql -u root -p
Me pede a senha, mas não me pediu para definir em nenhum momento, não sei qual é e vazio não aceita, com o mesmo erro de permissão abaixo.

mysql -u root
ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’

Executei os comandos abaixo para alterar a senha, mas mesmo assim quando tento com a senha nova recebo a mesma mensagem.

mysqld_safe --skip-grant-tables &
MariaDB [mysql]> UPDATE user SET password=PASSWORD(‘minhanovasenha’) WHERE User=‘root’;
MariaDB [mysql]> FLUSH PRIVILEGES;

Já tentei reinstalar o MySQL para ver se pede para inserir a senha nova do root e nada de pedir.
Alguém sabe como proceder para conseguir acessar?

Obrigado.

1 curtida

Acho que o procedimento normal é parar a base de dados e então:
sudo mysqld_safe --skip-grant-tables --skip-networking &

Depois você vai logar sem senha:
mysql -u root

Daí você pode fazer um grant:
grant all privileges on . to root@’%’ identified by ‘senha’;

Tem também o set password:
update mysql.user set password=PASSWORD(‘novaSenha’) where user=‘root’ and host=‘localhost’;

Aconteceu o mesmo comigo. Ainda não descobri como resolver.
Porém uma coisa descobri, no meu caso o root está aparentemente sem senha.
se usar o comando “sudo” antes e deixar a senha em branco dará acesso como root:

sudo mysql -uroot -p

1 curtida

Então, tem o dpkg-reconfigure que normalmente usava pra reconfigurar o mysql quando tava sem senha, daí ele já sugere a remoção da base de teste. E o mysql_install_db também servia, se não me engano, mas o mysql do RPi tá estranho mesmo.

Olá, hoje descobri através deste site:
http://blog.remontti.com.br/2024

Entendi que na nova versão do Debian 9 (e Raspbian 9 que estou utilizando), o MySQL foi substituído por padrão pelo MariaDB. O autor do site disse:

Se você instalar o pacote mysql-server ele vai estar instalando o mariadb-client mariadb-server.
Não sentiu que faltou algo nessa instalação?
Sim! No MySQL você definia uma senha para para o usuário root do mysql na instalação, com o MariaDB isso não acontece pois ele vem sem senha de root! Como usuário root não tem senha você não vai conseguir logar com ele no PHPMyAdmin.

Exatamente o que aconteceu comigo.

Para alterar a senha do usuário root do MariaDB faça:

# mariadb -u root

ou, no meu caso funcionou assim (tem que ter privilégios de root do sistema):

sudo mysql -uroot -p

Está sem senha. então só dê enter ao perguntar.
Agora no ambiente MySQL(MariaDB) dê os comandos:

USE mysql;
UPDATE user SET password=PASSWORD('SUA-SENHA') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

Agora pode acessar seu PHPMyAdmin como root (que acabou de criar).

2 curtidas

Excelente Jusiel, funcionou perfeito, obrigado.

Pessoal, primeiramente, obrigado, as informações aqui foram bastante claras para me ajudar aqui.
Somente uma questão, hoje não estou usando meu rasp, mas precisei levantar um server mysql num ubuntu18.04. Aqui a maioria dos comando como descritos acima funcionaram, porém este aqui:

UPDATE user SET password=PASSWORD(‘SUA-SENHA’) WHERE User=‘root’;

Mudou para:

UPDATE user SET authentication_string=PASSWORD(‘SUA-SENHA’) WHERE User=‘root’;

A tabela ‘password’ foi alterada para ‘authentication_string’ na versao mysql-server5.7.

Espero que ajude algumas pessoas.

Abraço!