L’errore 1045 (28000) in MariaDB è tipicamente causato da un accesso negato per via di credenziali di accesso errate o privilegi insufficienti. Ecco come si può risolvere questo problema:
1. Reimposta la password del root: Se il problema è causato da una password errata, si può reimpostare la password del root.
- Prima di tutto, fermare il servizio MariaDB. Su Linux, il comando solitamente è `sudo systemctl stop mariadb`.
- Poi, avviare MariaDB in modalità sicura con il comando `sudo mysqld_safe —skip-grant-tables —skip-networking &`.
- Lanciare mysql con `mysql -u root`.
- Una volta che si è all’interno della console MySQL, si può impostare la nuova password con i seguenti comandi:
\`\`\`sql
USE mysql;
UPDATE user SET Password=PASSWORD WHERE User=‘root’;
FLUSH PRIVILEGES;
quit;
\`\`\`
- Finalmente, riavviare il servizio MariaDB con `sudo systemctl start mariadb`.
1. Verifica i privilegi dell’utente: Se il problema non è causato dalla password, potrebbe essere che l’utente non ha i privilegi necessari. Puoi controllare i privilegi del tuo utente con questo comando da MySQL shell:
\`\`\`sql SHOW GRANTS FOR ‘root’@‘localhost’; \`\`\` Se l’utente ‘root’ non ha tutti i privilegi, puoi assegnarglieli con: \`\`\`sql GRANT ALL PRIVILEGES ON . TO ‘root’@‘localhost’ WITH GRANT OPTION; \`\`\`1. Assicurati che l’utente root esista: Un’altra possibile causa potrebbe essere che l’utente ‘root’ non esiste affatto. Per verificarlo, basta eseguire questo comando:
\`\`\`sql SELECT User FROM mysql.user; \`\`\` Se ‘root’ non compare nell’elenco, avrai bisogno di crearlo. Puoi farlo con questo comando: \`\`\`sql CREATE USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’; \`\`\` E poi assegnare a ‘root’ tutti i privilegi con: \`\`\`sql GRANT ALL PRIVILEGES ON . TO ‘root’@‘localhost’ WITH GRANT OPTION; \`\`\` Ricorda sempre di eseguire `FLUSH PRIVILEGES;` dopo aver modificato i privilegi per assicurarti che i cambiamenti abbiano effetto.Ricordati che è importante che la password utilizzata per l’utente root sia sicura.
Finalmente, tieni a mente che questi passaggi sono per un ambiente di test o di sviluppo. Per un ambiente di produzione, assicurati di seguire le migliori pratiche di sicurezza.