Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Collegamento client/server con MariaDB

79 views
Skip to first unread message

^Bart

unread,
Dec 21, 2018, 1:57:15 PM12/21/18
to
Salve,

da un client (Debian Buster) cerco di collegarmi al server mysql (Debian
Buster).

Dal client, il cui indirizzo è 192.168.1.102, ricavo:

$ mysql -u root -p -h 192.168.1.251
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.251'
(111 "Connection refused")

Lato server ho:

# ss -nptl
LISTEN 0 80 192.168.1.102:3306
0.0.0.0:* users:(("mysqld",pid=13210,fd=19))

Ho già editato lato server:
# nano /etc/mysql/mariadb.conf.d/50-server.cnf

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1 (ho sostituito l'ip con
192.168.1.102)

Ovviamente lato server riesco a loggarmi come root.

Saluti.
^Bart

^Bart

unread,
Dec 21, 2018, 2:32:26 PM12/21/18
to
> # ss -nptl
> LISTEN    0          80              192.168.1.102:3306
> 0.0.0.0:*         users:(("mysqld",pid=13210,fd=19))

# nmap 192.168.1.251
Starting Nmap 7.70 ( https://nmap.org ) at 2018-12-21 20:30 CET
Nmap scan report for 192.168.1.251
Host is up (0.010s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds

Quindi la porta 3306 è chiusa.

Saluti.
^Bart

^Bart

unread,
Dec 21, 2018, 2:41:11 PM12/21/18
to
> Quindi la porta 3306 è chiusa.

iptables -A INPUT -p tcp --dport 3306 --jump ACCEPT

Ma cosi' non si apre :\

^Bart

Giovanni

unread,
Dec 22, 2018, 2:57:06 AM12/22/18
to
Ma se hai il server mysql che gira su IP:192.168.1.102 perché ti aspetti
che la porta 3306 sia aperta su IP:192.168.1.251 ??

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
< http://giovanni.homelinux.net/ >

^Bart

unread,
Dec 22, 2018, 3:53:38 AM12/22/18
to
> Ma se hai il server mysql che gira su IP:192.168.1.102 perché ti aspetti
> che la porta 3306 sia aperta su IP:192.168.1.251 ??

Il server è su 251, allora ho sbagliato qualcosina... heheeh! :D

Io dal client digito:

$ mysql -u root -p -h 192.168.1.251

Avendo problemi di collegamento con Workbench vorrei provare il
collegamento client/server direttamente da console...

> Ciao
> Giovanni

Saluti!
^Bart

Giovanni

unread,
Dec 22, 2018, 6:10:28 AM12/22/18
to
Però hai scritto che il server ascolta sull'IP 192.168.1.102

> Lato server ho:
> # ss -nptl
> LISTEN 0 80 192.168.1.102:3306 0.0.0.0:* users:(("mysqld",pid=13210,fd=19))

Hai verificato se dopo aver editato la configurazione (e fatto ripartire
il demone mysql) ascolta sull'IP giusto? Deve essere 192.168.1.251:3306
(oppure 0.0.0.0:3306 se lo vuoi su qualsiasi indirizzo abbia il server).

Inoltre per connetterti da remoto devi aver definito un utente corretto,
per esempio 'root'@'192.168.1.102' se 192.168.1.102 è l'IP del cliente.

CBM64

unread,
Dec 23, 2018, 2:16:26 AM12/23/18
to

>
> Ovviamente lato server riesco a loggarmi come root.
>
> Saluti.
> ^Bart

controlla che mysql non parta con la direttiva --skip-networkin ,
vado a memoria, se cosi' fosse commenta la direttiva e fati reboot
(oppure riavvia mysql, scegli tu) .
potrebbe essere questa la soluzione.

bye

^Bart

unread,
Dec 23, 2018, 10:06:30 AM12/23/18
to
> Hai verificato se dopo aver editato la configurazione (e fatto ripartire
> il demone mysql) ascolta sull'IP giusto?  Deve essere 192.168.1.251:3306
> (oppure 0.0.0.0:3306 se lo vuoi su qualsiasi indirizzo abbia il server).
>
> Inoltre per connetterti da remoto devi aver definito un utente corretto,
> per esempio 'root'@'192.168.1.102' se 192.168.1.102 è l'IP del cliente.

Ho risolto collegandomi in questo modo dal client:
mysql -u gabriele -p87654321 -h192.168.1.251

Quando invece scrivo:
mysql -u gabriele -p 87654321 -h192.168.1.251

Mi appare la possibilità di inserire la password ma pur inserendola
corretta ricavo questo errore:
Enter password:
ERROR 1044 (42000): Access denied for user 'gabriele'@'192.168.1.102' to
database '87654321'

Ho editato lato server il file /etc/mysql/mariadb.conf.d/50-server.cnf
ed ho fatto le seguenti prove:
bind-address = 127.0.0.1 (il client non si collega)
bind-address = 192.168.1.251 (il client si collega)
#bind-address = 127.0.0.1 (il client si collega)

Immagino che mettendo il # il server accetterà le connessioni da tutti i
client mentre mettendo 192.etc. solo da quelli che fanno parte di
192.etc. giusto?

Di default MariaDB non disattiva più la connessione tcp, per dovere di
cronaca oltre che l'utente creato ad hoc riesco a far loggare dal client
anche l'utente root.

> Ciao
> Giovanni

Saluti e grazie ancora per tutte le info! :)
^Bart

^Bart

unread,
Dec 23, 2018, 10:36:13 AM12/23/18
to
> controlla che mysql non parta con la direttiva --skip-networkin ,
> vado a memoria, se cosi' fosse commenta la direttiva e fati reboot
> (oppure riavvia mysql, scegli tu) .
> potrebbe essere questa la soluzione.

Come già accennato nel post di risposta a Giovanni di default MariaDB
non disabilità più il login da rete mentre per il discorso BIND ragiona
in maniera diversa se si commenta tale riga, se si scrive l'ip del
server o se si lascia 127.0.0.1

Ora ho un altro problema perchè da riga di comando mi collego mentre con
Workbench quando provo a digitare la password dell'utente mi dice: Could
not store password: The name org.freedesktop.secrets was not provided by
any .service files.

Nella pagina
https://dev.mysql.com/doc/workbench/en/wb-mysql-connections-vault.html
mi si dice che per KDE devo installare ksecretservice per memorizzare la
password ma... non riesco a trovare tale pacchetto per la mia Debian
Buster e pensavo che il kdewallet bastasse!

> bye

Saluti!
^Bart

Giovanni

unread,
Dec 23, 2018, 12:53:20 PM12/23/18
to
On 12/23/2018 04:06 PM, ^Bart wrote:

> Quando invece scrivo:
> mysql -u gabriele -p 87654321 -h192.168.1.251
>
> Mi appare la possibilità di inserire la password ma pur inserendola
> corretta ricavo questo errore:
> Enter password:
> ERROR 1044 (42000): Access denied for user 'gabriele'@'192.168.1.102' to
> database '87654321'

In questo caso '87654321' viene preso come nome del database, anziché
come password. Se non vuoi inserire la password sulla linea di comando
usa: mysql -u gabriele -p -h 192.168.1.251.
oppure crea il file .my.cnf (-rw-------) e potrai collegarti scrivendo
solo "mysql"

## .my.cnf
user = gabriele
host = 192.168.1.251
password = 87654321
## end

> Ho editato lato server il file /etc/mysql/mariadb.conf.d/50-server.cnf
> ed ho fatto le seguenti prove:
> bind-address = 127.0.0.1 (il client non si collega)
> bind-address = 192.168.1.251 (il client si collega)
> #bind-address = 127.0.0.1 (il client si collega)
>
> Immagino che mettendo il # il server accetterà le connessioni da tutti i
> client mentre mettendo 192.etc. solo da quelli che fanno parte di
> 192.etc. giusto?

Nel primo caso [ bind-address = 127.0.0.1 ] il server ascolta solo la
porta 3306 del localhost che è visibile solo all'interno della macchina.
Nel secondo caso [ bind-address = 192.168.1.251 ] il server ascolta solo
la porta 3306 dell'ip 192.168.1.251, ed è quindi raggiungibile da tutti
i clienti all'interno della lan. All'interno del server è raggiungibile
attraverso un socket unix.
Nel terzo caso non dovrebbe essere visibile dall'esterno solo
all'interno del server attraverso un socket unix.

^Bart

unread,
Dec 23, 2018, 1:48:33 PM12/23/18
to
> In questo caso '87654321' viene preso come nome del database, anziché
> come password.  Se non vuoi inserire la password sulla linea di comando

Ah però... non lo sapevo! :)

> usa: mysql -u gabriele -p -h 192.168.1.251.

Questo è quello che volevo ovvero il fatto che il sistema mi chieda la
password e mi permetta di digitarla in maniera non visibile!

> oppure crea il file .my.cnf  (-rw-------) e potrai collegarti scrivendo
> solo "mysql"
>
> ## .my.cnf
> user = gabriele
> host = 192.168.1.251
> password = 87654321
> ## end

Interessante ma non è quello che mi interessa o meglio... ora come ora
Workbench causa mancanza di un modulo che fa lo store della password
(kdewallet non gli basta!) non mi memorizza la password quindi con
quello che mi hai scritto riuscirei ad ovviare a questo problema!

> Nel primo caso [ bind-address = 127.0.0.1 ] il server ascolta solo la
> porta 3306 del localhost che è visibile solo all'interno della macchina.

Nel caso non si voglia dare accesso diretto al database dall'esterno.

> Nel secondo caso [ bind-address = 192.168.1.251 ] il server ascolta solo
> la porta 3306 dell'ip 192.168.1.251, ed è quindi raggiungibile da tutti
> i clienti all'interno della lan. All'interno del server è raggiungibile
> attraverso un socket unix.

Ovviamente tutti i client su 192.168.1.x

> Nel terzo caso non dovrebbe essere visibile dall'esterno solo
> all'interno del server attraverso un socket unix.

Mettendo # al parametro di Bind il client si collega, essendo qualosa di
"anomalo" meglio andare in maniera più ortodossa sugli altri due parametri!

> Ciao
> Giovanni

Saluti e grazie ancora! :)
^Bart
0 new messages