Stavo provando a divertirmi con FreeBSD, e mi è capitato di dover ripristinare un intero database di cui avevo fatto il backup con mysqldump.
Ho tentato il ripristino come ho sempre fatto su linux, col seguente comando:
mysql -u root -p < file_backup.sql
Enter password:
Please use --connect-expired-password option or invoke mysql in interactive mode
L’errore che si vede nell’ultima riga è perché, ho poi scoperto, dopo aver configurato il database con mysql_secure_installation, evidentemente c’è bisogno di cambiare la password al primo utilizzo.
Per risolvere mi sono dunque collegato a mysql con la password scelta durante la fase di installazione e l’ho poi settata (ovviamente uguale a prima)
mysql -u root -p
set password = password('nontelodico');
Ieri ho avuto la necessità di creare al volo un’istanza di MariaDB per un progetto Python, e naturalmente avevo anche la necessità di un tool per poter gestire comodamente il database: phpmyadmin.
La scelta è ricaduta sull’uso di Docker, e quindi ho creato il seguente file di composizione:
E in pochi secondi accedo tranquillamente in localhost alla porta 8080 su phpmyadmin.
Inserisco le credenziali root / secret e mi compare il messaggio di errore: mysqli::real_connect(): (HY000/2002): No route to host.
Errore in phpmyadmin che non riesce a collegarsi al container del database, restituendo l’errore no route to host.
Vi risparmio i tentativi inutili, ma il firewall di Linux/Ubuntu (firewalld) in pratica vedeva i network di Docker come reti pubbliche, e quindi sostanzialmente dove il livello di sicurezza è basso.
Ecco infatti la situazione del mio firewall prima di lanciare Docker.
Configurazione di firewalld prima di lanciare Docker
Una volta lanciato Docker, ecco che compaiono delle nuove connessioni a sinistra, una si chiama docker0 e le altre hanno un nome del tipo br-*.
Docker crea nuove connessioni nel firewall
Se impostiamo queste connessioni su trusted tutto riprende a funzionare normalmente… fino al prossimo reboot.
Trusted significa che è una connessione di cui ci fidiamo.
Ecco ora che possiamo collegarci normalmente al nostro database.
Se vogliamo però che il problema si risolva per sempre, è necessario impostare questa modifica in modo permanente. Per farlo, basta salvare il runtime su disco, cliccando su Opzioni –> Runtime su permanente.
Per fare le stesse cose da terminale (ovviamente usando un utente con permessi amministrativi):
Uso alcuni cookie su questo sito per darti la miglior esperienza possibile memorizzando le tue preferenze e analizzando anonimamente i flussi di navigazione e le statistiche. Cliccando “Accetta”, consenti all'uso di tutti i cookie sul sito.
Questo sito Web utilizza i cookie per migliorare la tua esperienza durante la navigazione nel sito Web. Di questi cookie, i cookie classificati come necessari vengono memorizzati nel browser in quanto sono essenziali per il funzionamento delle funzionalità di base del sito Web. Utilizziamo anche cookie di terze parti che ci aiutano ad analizzare e comprendere come utilizzi questo sito web. Questi cookie verranno memorizzati nel tuo browser solo con il tuo consenso. Hai anche la possibilità di disattivare questi cookie. Ma la disattivazione di alcuni di questi cookie potrebbe avere un effetto sulla tua esperienza di navigazione.
I cookie necessari sono assolutamente essenziali per il corretto funzionamento del sito web. Questa categoria include solo i cookie che garantiscono funzionalità di base e caratteristiche di sicurezza del sito web. Questi cookie non memorizzano alcuna informazione personale.
Tutti i cookie che potrebbero non essere particolarmente necessari per il funzionamento del sito Web e vengono utilizzati specificamente per raccogliere dati personali dell\'utente tramite analisi, pubblicità, altri contenuti incorporati sono definiti cookie non necessari. È obbligatorio ottenere il consenso dell\'utente prima di eseguire questi cookie sul tuo sito web.