Newsgroup: it.comp.lang.perl
Titolo: mSQL e DBI

Salve a tutti,
ho provato questo script per connettermi ad un database mSQL con perl.
Premesso che il db esiste e funziona (provato con telnet), lo script non
genera alcun tipo di errore pero' non visualizza nessun valore per $dbh.
Dove sbaglio?
Quali sono i moduli necessari per il corretto funzionamento e come posso
fare per sapere se sono installati sul server remoto? (L'assistenza tecnica
non mi ha dato risposta
Grazie!
#!/usr/local/bin/perl
use CGI;
use DBI;
$host = "localhost";
$dbname = "miodb";
$dbh =DBI->connect("DBI:mSQL:database=$dbname;host=$host",undef,undef);
print "Content-type:text/html\n\n";
print "<html><head><title>Test Page</title></head>";
print "<body>";
print "<h2>msql(test) = $dbh</h2>";
print "</body></html>";

 print "</body></html>";
se poi ti desse errore, cambia la sintassi di connessione: puo' cambiare 
da una versione all'altra del driver DBD, 
ad esempio da
$dbh=DBI->connect(DBI:$driver:database=$database;host=$hostname;$options);
a
$dbh=DBI->connect(DBI:$driver:database=$database:host=$hostname,$options);
Ciao

 if ($dbh) {print "Connesso\n";} else {print "errore: $DBI::errstr\n";}
provato, restituisce:
errore: Access to database denied
ma la password dove si deve mettere? (dovrebbe essere la stessa dell'account
ftp)
Ciao e grazie!
Alberto

 ICQ# 1980563

 connect.
Niente da fare, ho provato a passarglieli in tutte le salse ... non ne vuol
sapere.
Comunque in tutti i manuali, guide, etc. non c'e' riferimento a password.
Solo per MySQL.
Se avete altri suggerimenti vi ringrazio perche' sto incominciando a
dubitare delle mie capacita' mentali.
Ciao.

 Ciao.


 2, quindi esegui lo script e studiati l'output.
Dunque, fatto e ti dico cosa ne e' venuto fuori.
Con telnet si connette (messaggi corretti etc.) e fa riferimento a uid.
Quindi ritengo che l'errore sia in questo, cioe' invece di fornire la userid
dell'account bisogna specificare l'uid. Tempo fa avevo letto da qualche
parte il comando per conoscerla, ma non sono riuscito a trovarlo.
Che differenza c'e' tra uid, ruid e euid?
Ancora grazie e ciao.

 Comunque in tutti i manuali, guide, etc. non c'e' riferimento a password.
? Scusa ? Come non si parla di password? Prova sul tuo sistema, dalla
shell a digitare
perldoc DBD::mysql
che dovrebbe indicarti la sintassi corretta.
Poi, NON e' assolutamente detto che lo user e la password di mysql
per il tuo database coincidano con quelle del tuo account, anzi!
Se poi ti dice "Access to database denied" credo proprio che intenda:
il db c'e' ma lo user e la password non sono corretti... o forse
non c'e' proprio il db!
Allora prova dal prompt della shell a digitare
mysql -h nomehostcontenentemysql -u nomeutente -p nomedb
dopodiche ti chiedera' la pwd.
Se non si connette allora NON e' un problema perl-DBI. Se si connette...
prova ancora la sintassi in mille altre salse :)
Ciao! 
*******************************************************
Andrea Maestrutti                          Dree Mistrut

 perldoc DBD::mysql
Alberto parlava di mSQL, non di mySQL, e la documentazione di
DBD:mSQL/DBD::mysql ha, per mSQL, solo esempi in cui username e password
sono undef.
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

 mysql -h nomehostcontenentemysql -u nomeutente -p nomedb
Esattamente e':
mysql -unomeutente -ppassword nomedatabase
Ciao!
Alberto

Ho trovato il perche' non funziona, grazie alle vecchie faq su msql.
ftp://ftp.bond.edu.au/pub/Minerva/msql/faq.html
Allego anche la nota che riguarda il problema, chissa' se puo' essere
d'aiuto a qualcun altro.
Ciao a tutti.
Alberto
_______________________________________________
User markp wishes to use the test database using the db_app application.
Instead of the setuid nature of the application allowing markp access to the
database, all that happens is the error message:
    Access to database denied
This occurs because of the way in which mSQL passes user information to the
database server. It uses the getuid() system call which returns the real
user id of the calling process rather than the effective user id.
mSQL version 2 will have radically different security mechanisms.
____________________________________________

 
--
