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


#1

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.


#2

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’;


#4

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


#5

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.


#6

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).


#7

Excelente Jusiel, funcionou perfeito, obrigado.


#8

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!