Newsgroup: it.comp.java
Titolo: Connettere Java a Mysql, mi da un errore: localhost is not allowed?

Ciao a tutti,
sto cercando usare java e Mysql, ma il programma qui sotto mi un errore.
Uso la Mandrake linux 10.1, Java 1.5, Mysql 4.0.20 e
mysql-connector-java-3.1.6
Il programma seguente e' molto semplice e mi serve come base per provare
l'uso di java con MySql:
Ho installato anche apache e tomcat in quanto il fine ultimo e' quello di
fare un server web per pagine jsp che si collegano ad un database. Ma
purtroppo gia' iniziano i primi intoppi.
file magazzino.java
---------------------------------------------------------
import java.sql.*;
import java.util.*;
public class magazzino {
 public static void main(String args[]) {
   try{
   Class.forName("com.mysql.jdbc.Driver");
   System.out.println("DEBUG: Driver caricato");
 
   Connection
connessione=DriverManager.getConnection("jdbc:mysql://localhost/javatest?&user=javauser&password=javadude");
   Statement statemento = connessione.createStatement();
   System.out.println("DEBUG: Connessione avvenuta"); 
//   String SQL="SELECT * FROM testdata";
//   ResultSet risultato = statemento.executeQuery(SQL);
//   while(risultato.next()){
//        System.out.print(risultato.getString(1)+" | ");
//        System.out.println(risultato.getString(2));
//   }
   connessione.close();
   }
   catch(Exception ex){
     System.out.println("ERRORE="+ex);
     System.exit(0);
     }
   }
 }
--------------------------------------------------------
eseguito da console linux mi da questo errore:
[root@192 magazzino]# java magazzino
DEBUG: Driver caricato
ERRORE=java.sql.SQLException: null,  message from server: "Host '127.0.0.1'
is not allowed to connect to this MySQL server"
[root@192 magazzino]#
Ho provato anche ad eseguirlo come utente linux javauser che ho creato
apposta ed ho provato anche ad usare nel sorgente come user root, ma mi da
sempre errore.
In Mysql oltre ad aver creato un database ho impartito anche questo comando
come indicato nei doc:
GRANT ALL PRIVILEGES ON *.* TO javauser@localhost IDENTIFIED BY 'javadude'
WITH GRANT OPTION;
qui una schermata di Mysql da console:
--------------------------------------
[javauser@192 magazzino]$ mysql -u javauser -p javadude
Enter password:
ERROR 1049 (00000): Unknown database 'javadude'
[javauser@192 magazzino]$ mysql -u javauser -p javatest
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12 to server version: 4.0.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> status
--------------
mysql  Ver 14.6 Distrib 4.1.5-gamma, for mandrake-linux-gnu (i586)
Connection id:          12
Current database:       javatest
Current user:           javauser@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         4.0.20
Protocol version:       10
Connection:             Localhost via UNIX socket
Client characterset:    latin1
Server characterset:    latin1
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 47 min 48 sec
Threads: 2  Questions: 12  Slow queries: 0  Opens: 9  Flush tables: 1  Open
tables: 3  Queries per second avg: 0.004
--------------
mysql>



Molto probabilmente il problema č nella configurazione globale di MySQL. 
In pratica non hai detto a MySQL a quale indirizzo I.P. rispondere e di 
default non risponde a niente che non corrisponda a "localhost" (attento 
che per MySQL 127.0.0.1 e localhost non sono la stessa cosa).
Dovresti trovare il file my.cnf (generalmente in /etc/mysql) e 
modificare il parametro bind address a 0.0.0.0 (accetta connessioni da 
dovunque) e poi riavviarlo e cs dovrebbe funzionare.
Gian Luca