Koozali.org: home of the SME Server

gnucash e accesso a database su sme.

Offline redteo

  • *
  • 122
  • +0/-0
    • redteo blog
gnucash e accesso a database su sme.
« on: July 05, 2013, 12:33:44 AM »
buon tutto.

Vorrei rendere possibile tramite tunnel ssh da win o da linux l'accesso a un bs mysql sul quale salvare i dati
di gnucash. in modo da potervi accedere da più client.
premetto che quanto segue l'ho sperimentato su una istallazione ubuntu 13.04 e il server è uno sme 8.

mi son creato le chiavi:

Code: [Select]
ssh-keygen -t rsa

ho copiato la chiave sulla home in uso, l'ho rinominata da id_rsa.pub a private.key cambiato i permessi a 0400.

attivo il tunnell ssh su un terminale

Code: [Select]
ssh -L 3307:127.0.0.1:3306 -i /home/redteo/private.key root@sito.com -p xxxx
dove xxxx è la porta pubblica ssh del server (per ovvi motivi non ho lasciato la standard)
digito la password di root e mi ritrovo in sme con il promt di root.

su gnucash creo un profilo nuovo. faccio salva con nome, scelgo mysql.
e inserisco

127.0.0.1:3307 nomeDB userDB passDB premo salva
e nella finestra del terminale mi da errore

Code: [Select]
[root@server ~]# channel 3: open failed: connect failed: Connection refused
l'unica cosa che ho provato per cercare di risolvere l'errore è stato di aprire mysql all'accesso da remoto, anche se la procedura dovrebbe attuare come da locale.

Code: [Select]
config set mysqld service access public status enabled TCPPort 3306
signal-event remoteaccess-update
signal-event reboot

niente ricevo sempre un rifiuto alla connessione
ho provato anche con mysqlworkbench..niente

grato per eventuali suggerimenti






Offline Stefano

  • *
  • 10,839
  • +2/-0
Re: gnucash e accesso a database su sme.
« Reply #1 on: July 05, 2013, 10:16:36 AM »
1) dalla console dalla quale instauri la connessione ssh, prova a dare
Code: [Select]
mysql -P3307 -utuoutente (non root)

2) il public non ci azzecca.. FAQ -> mysql.. esiste una chiave del db per permettere connessioni via rete.. di default, IIRC, mysql non è in ascolto sulla 3306 ma su socket..

Offline redteo

  • *
  • 122
  • +0/-0
    • redteo blog
Re: gnucash e accesso a database su sme.
« Reply #2 on: July 05, 2013, 03:08:10 PM »
stefano quale sarebbe lo scopo di questo comando??
forse intendevi di darlo in un altro terminale locale?
ho detto che quando creo il tunnel sul terminale mi appare il promt del server come se facessi un ssh normale senza forwardare la 3306 su 3307. quindi qualsiasi azione su tale promt avviene sul server, ma io desidero che gnucash mandani dei locali in localhost sulla porta 3307 e
quisti vengano "trasferiti" sul server. nello specifico usare comandi mysql in locale su una porta che forwarda al server...
non so spiegarmi meglio.

se do tale comando sul terminale connesso ssh aggiungendo anche -p perché mi venga richiesta la password tutto ok.
nel terminale locale
 
Code: [Select]
ERROR 1045 (28000): Access denied for user"xxx@localhost' (using password: YES)
http://www.7girello.net/istruzioni/bilancio-online-con-gnucash-mysql-ssh/
questo l'articolo al quale mi sono ispirato.

l'unica che non ho capito ´questa:
quando gnucash tenta accedere a mysql apre una connessione nuova connessione o usa quella attiva?,
mi spiego, la private.key che ho fatto é protetta da password.
quindi al momento di instaurare il tunnel al prompt mi viene chiesta la pwd della chiave.
nelle varie paginette che ho letto non viene spiegata questa cosa. la cosa che vedo é che gli errori quando gnucash tenta connettersi al db
appaiono sul terminale remoto.....


al punto due avevo giá detto che dubitavo dell'efficacia di aprire la porta.. sapendo che non era quello il problema.

Offline redteo

  • *
  • 122
  • +0/-0
    • redteo blog
Re: gnucash e accesso a database su sme.
« Reply #3 on: July 05, 2013, 04:11:26 PM »
anche con una chiave senza password stesso errore.
ho provato a tirare giú il mysql locale prima di fare il test per verificare che non ci fossero interferenze di qualche genere...

Offline Stefano

  • *
  • 10,839
  • +2/-0
Re: gnucash e accesso a database su sme.
« Reply #4 on: July 05, 2013, 04:12:46 PM »
stefano quale sarebbe lo scopo di questo comando??

connettere il client mysql locale sul server remoto che però appare in locale..

Quote
forse intendevi di darlo in un altro terminale locale?

no, intendevo proprio quello che dicevo e che ho ripetuto

Quote
ho detto che quando creo il tunnel sul terminale mi appare il promt del server come se facessi un ssh normale senza forwardare la 3306 su 3307. quindi qualsiasi azione su tale promt avviene sul server, ma io desidero che gnucash mandani dei locali in localhost sulla porta 3307 e
quisti vengano "trasferiti" sul server. nello specifico usare comandi mysql in locale su una porta che forwarda al server...

quello che fai, come lo fai e perchè lo fai mi è noto perchè l'ho fatto uno ziliardo di volte

Quote
non so spiegarmi meglio.

non devi, è cristallino

Quote
se do tale comando sul terminale connesso ssh aggiungendo anche -p perché mi venga richiesta la password tutto ok.
nel terminale locale
 
Code: [Select]
ERROR 1045 (28000): Access denied for user"xxx@localhost' (using password: YES)

l'utente xxx esiste in mysql su SME? da che host?

Quote
l'unica che non ho capito ´questa:
quando gnucash tenta accedere a mysql apre una connessione nuova connessione o usa quella attiva?,
mi spiego, la private.key che ho fatto é protetta da password.
quindi al momento di instaurare il tunnel al prompt mi viene chiesta la pwd della chiave.
nelle varie paginette che ho letto non viene spiegata questa cosa. la cosa che vedo é che gli errori quando gnucash tenta connettersi al db
appaiono sul terminale remoto.....


al punto due avevo giá detto che dubitavo dell'efficacia di aprire la porta.. sapendo che non era quello il problema.

tu devi far iniziare la connessione ssh allo start della macchina
a quel punto la porta 3307 sarà disponibile a chiunque voglia usarla

hai fatto quello che ti ho detto?

Offline redteo

  • *
  • 122
  • +0/-0
    • redteo blog
Re: gnucash e accesso a database su sme.
« Reply #5 on: July 05, 2013, 04:19:09 PM »
connettere il client mysql locale sul server remoto che però appare in locale..

no, intendevo proprio quello che dicevo e che ho ripetuto

quello che fai, come lo fai e perchè lo fai mi è noto perchè l'ho fatto uno ziliardo di volte

non devi, è cristallino

l'utente xxx esiste in mysql su SME? da che host?

localhost

Quote
tu devi far iniziare la connessione ssh allo start della macchina
a quel punto la porta 3307 sarà disponibile a chiunque voglia usarla

hai fatto quello che ti ho detto?

sempre...
dunque come ho detto poi nel posto successiovo hp provato a creare il tunnel dopo aver spent l'mysql locale
cosí credo che in ogni caso quella porta rimane libera e comunque non vedo l'utilitá
di far partire la connessione all'avvio della macchia quando lo scopo sarebbe quello di usare gnucash su diversi pc e un db centralizzato.

Offline Stefano

  • *
  • 10,839
  • +2/-0
Re: gnucash e accesso a database su sme.
« Reply #6 on: July 05, 2013, 04:21:02 PM »
consiglio un cambio di approccio..

server openvpn su SME
client openvpn sui client


Offline redteo

  • *
  • 122
  • +0/-0
    • redteo blog
Re: gnucash e accesso a database su sme. [risolto]
« Reply #7 on: July 05, 2013, 05:41:45 PM »
il tunnel non entrava in funzione perchè su sme l'accesso al mysql avviene per socket restringendone l'uso alla sola macchina server
quindi come specificato nel manuale di sme occorre
consentire l'accesso al server mysql tramite network

http://wiki.contribs.org/MySQL#Access_MySQL_from_the_local_network

una volta applicati i nuovi settaggi
proviamo di nuovo ad usare il db sul tunnel

Code: [Select]
mysql -h 127.0.0.1 t -P 3307 -u userDB -p
se questo non funzionasse agire sul database lato server per aggiungere i permessi
a un utente analogo su anyhost

Code: [Select]
grant all privileges on gnucashDB.* to 'userDB'@'%' identified by 'password';

ovviamente ringrazio stefano per l'aiuto.