PDA

View Full Version : connessione a mysql


X3noN
26-07-2005, 19:42
Ciao a tutti,

ho un problemino...ovvero:

ho bisogno che ci si possa connettere via rete a mysql.
ho creato un utente che possa connettersi da "anywhere", ma non è possibile connettersi nemmeno da un pc della LAN con la stessa subnet.

Il server non ha firewall e lo stesso server ospita apache che è raggiungibilissimo e funziona. Non è installato iptables.

Mysql usato da localhost funziona da Dio...

idee?


:help: :help: :help:

maxithron
26-07-2005, 19:45
come hai garantito l'accesso per gli user non locali?

X3noN
26-07-2005, 20:29
GRANT SELECT ON * . * TO 'username'@'%'

WebWolf
26-07-2005, 20:30
La sintassi che usi è la seguente ?

shell> mysql -h host -u user -p
Enter password: ********

Facendo una query sulla tabella user ci sono i tuoi codici di accredito (username e password) ?

maxithron
26-07-2005, 20:33
due cose:

1) nel file my.cnf posta qui cos'hai alla voce relativa al Bind Address

2) Grant Select solo? già provato con grant all privileges?

X3noN
26-07-2005, 20:51
due cose:

1) nel file my.cnf posta qui cos'hai alla voce relativa al Bind Address

2) Grant Select solo? già provato con grant all privileges?

1: c'è solo 127.0.0.1

non penso sia un problema di utenti o grant perchè da locale collegandomi da shell funziona tutto correttamente...

X3noN
26-07-2005, 21:08
ho risolto commentando la riga del bind address e riavviando il demone.

Ora però mi sorgono dubbi sulla sicurezza...

come andrebbe impostato in verità?

grazie!
:p :D

maxithron
26-07-2005, 21:34
ho risolto commentando la riga del bind address e riavviando il demone.

Ora però mi sorgono dubbi sulla sicurezza...

come andrebbe impostato in verità?

grazie!
:p :D

apposta te lo avevo chiesto :)

Comunque, generalmente al posto del localhost va messo l'ip reale del pc.

Qui trovi un primo semplice mini-howto per dare un tocco di sicurezza in più:

http://sunsite.mff.cuni.cz/MIRRORS/ftp.mysql.com/doc/en/Security.html

ferroilpinguino
29-07-2005, 01:09
ciao non riesco a connettermi in remoto a mysql con mysql query browser....

non riesco neanche a fare mysql -h host -u user -p...
mi fa :
password.....
la inserisco e poi errore....

per chiarezza host io metto l'indirizzo del computer sul quale c'è mysql server

adesso ho toccato qualcosa nel file my.cnf... potete dargli un'occhiata...

[client]
password = cane
port = 3306
socket = /var/run/mysqld/mysqld.sock

[safe_mysqld]
err-log = /var/log/mysql/mysql.err

[mysqld]
#skip-innodb
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
log-error = /var/log/mysql/mysqld.err
# If set, mysql logs all queries(general query log). This will be deprecated in
# 5.0. This logs all queries, even error queries and is slow.
# log = /var/log/mysql/mysql.log
#
# If you really need logging, use rather binary logging. Especially when doing
# replication. Read
# file:/usr/share/doc/mysql-*/manual.html.gz#Replication
# You can use PURGE MASTER LOGS TO '$hostname-bin.010' to get rid of old logs
# from $hostname-bin.01 up to $hostname-bin.09 while the slave server is
# running.
# Before doing that, check which logfile slave curently uses by running
# mysql> SHOW SLAVE STATUS
# To list logfiles on master do:
# mysql> SHOW MASTER LOGS
Then use PURGE for those not needed anymore only! Never remove the files
# manually!
#
# Also consult RESET MASTER and RESET SLAVE commands before doing any changes
# mysql> RESET MASTER - Deletes all binary logs listed in the index
# file, resetting the binlog index file to be empty.
# mysql> RESET SLAVE - Makes the slave forget its replication position in
# the master logs.
# mysql> SET SQL_LOG_BIN=0 - this turns off logging (execute on MASTER only)
# mysql> SET SQL_LOG_BIN=1 - this turns on logging (execute on MASTER only)
#
# log-bin
# set-variable = binlog-do-db=non_existant
# set-variable = binlog-ignore-db=database_name
#
# server-id has to unique for each master or slave in your network,
# lets use last number from IP address
# server-id = 207
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-locking
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = thread_stack=128K
# keep secure by default!
bind-address = 127.0.0.1
port = 3306
# this can make it even more secure:
#skip-networking

[mysqldump]
quick
set-variable = max_allowed_packet=1M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
set-variable = key_buffer=16M

SergioL68
29-07-2005, 01:44
Non ti connetti da remoto forse per il solito bind-address, quello diventa l'unico indirizzo dal quale il DB accetta comunicazioni.
Io installerei il MySql Administrator, scaricabile sempre dallo stesso sito del MySql, ti chiarisce le cose visualizzando tabelle, utenti, processi e tutto un pò.
Ricordati poi di creare un host per l'user che vuoi si colleghi da remoto altrimenti di default il MySql acceta solo connessioni da localhost.

ferroilpinguino
04-08-2005, 23:31
+-------------+------------------+------------------+
| host | user | password |
+-------------+------------------+------------------+
| localhost | root | 32f178fc4b7324c1 |
| pinguserver | root | |
| localhost | | |
| pinguserver | | |
| % | andrea | 35995b3568257f3d |
| localhost | andrea | |
| 192.168.0.6 | andrea | 35995b3568257f3d |
| % | andrea@localhost | 35995b3568257f3d |
| % | root | |
+-------------+------------------+------------------+


ciao questa è la mia tabella dei grant come faccio con java ad accedere al database???
supponendo che 32........sia:pippo e che 35.........sia:pluto

per avere il prompt di mysql faccio mysql -u bla -p
passwd:ciao

...non riesco ad accedere al database , i driver li carica correttamente ma dopo niente...

se centra ho apache tomcat e mysql su linux

SergioL68
05-08-2005, 13:47
+-------------+------------------+------------------+
| host | user | password |
+-------------+------------------+------------------+
| localhost | root | 32f178fc4b7324c1 |
| pinguserver | root | |
| localhost | | |
| pinguserver | | |
| % | andrea | 35995b3568257f3d |
| localhost | andrea | |
| 192.168.0.6 | andrea | 35995b3568257f3d |
| % | andrea@localhost | 35995b3568257f3d |
| % | root | |
+-------------+------------------+------------------+


ciao questa è la mia tabella dei grant come faccio con java ad accedere al database???
supponendo che 32........sia:pippo e che 35.........sia:pluto

per avere il prompt di mysql faccio mysql -u bla -p
passwd:ciao

...non riesco ad accedere al database , i driver li carica correttamente ma dopo niente...

se centra ho apache tomcat e mysql su linux
Non sono pratico dell'uso da riga di comando, io solitamente uso il MySql Administrator, un interfaccia grafica completissima di tutte le funzioni possibili e scaricabile dal sito del MySql, prova ad installarlo.
Altrimenti un PhpMyAdmin....

ferroilpinguino
06-08-2005, 19:43
ciao scusa ma mysql admin puoi anche usarla da remoto??

perchè se è così la installo subito ...
grazie...

SergioL68
07-08-2005, 00:12
ciao scusa ma mysql admin puoi anche usarla da remoto??

perchè se è così la installo subito ...
grazie...
Certo che puoi.
Prima te lo setti da locale e poi lo raggiungi anche da remoto operando su tabelle, utenti, backup, di tutto di più :D

ferroilpinguino
07-08-2005, 16:07
ciao mi puoi aiutare:

ti spiego bene cosa devo fare ...

devo connettermi con java al database che ho fatto con mysql.

è da circa 20 giorni che provo...creo utenti vari e con java carico il driver:com.mysql.jdbc.Driver

tutto ok...quando metto la stringa per la connessione...:

jdbc:mysql://host:3306/pingudb?user=nome&password=passwd

mi da sempre errore , non si connette come dovrebbe ....

quindi tutto quello che penso si debba fare è creare la giusta utenza con i giusti permessi...no???

grazie

SergioL68
07-08-2005, 23:11
ciao mi puoi aiutare:

ti spiego bene cosa devo fare ...

devo connettermi con java al database che ho fatto con mysql.

è da circa 20 giorni che provo...creo utenti vari e con java carico il driver:com.mysql.jdbc.Driver

tutto ok...quando metto la stringa per la connessione...:

jdbc:mysql://host:3306/pingudb?user=nome&password=passwd

mi da sempre errore , non si connette come dovrebbe ....

quindi tutto quello che penso si debba fare è creare la giusta utenza con i giusti permessi...no???

grazie
Non conosco java, sorry.
Per quel che riguarda il MySql quello che devi fare è (con il MySql Administrator in locale) creare un HOST per l'lutente con il quale ti vuoi loggare introducendo IP nel formato classico ed usando il segno % che sta per qualunque sostituito a tutt l'IP o parte di esso.
Ricordati anche di impostare la password per tale utente, salva e poi fai la prima prova collegandoti in remoto sempre con il MySql Administrator, se ciò avviene, il problema non è del MySql e quindi passerai ad analizzare il tuo programma java ;)