Erreur de connexion au serveur

Eléphant du PHP | 214 Messages

02 janv. 2011, 08:53

Bonjour,

J'obtiens cette erreur de connexion au serveur localhost, sous windows ca marche bien alors que sous Ubuntu non plus:

Code : Tout sélectionner

Unable to select table: Access denied for user 'www-data'@'localhost' (using password: NO)
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123123';

# Codage
$Charset = 'utf8';

// connection à la DB
$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_set_charset($Charset,$link);  
mysql_query("SET NAMES $Charset;", $link) or die (mysql_error());

?>
et je peux me connecter sous phpmyadmin avec les meme variables

Merci d'avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

02 janv. 2011, 12:33

Tu nous parles de 2 systèmes d'exploitation, mais tu ne nous dit pas où se trouve la base de données.

'localhost' signifie, "la machine locale". Or, il y un abus de langage, c'est que le serveur MySQL s'exécute sur l'OS en cours d'exécution sur la machine locale.
En clair, si tu as un double boot, que MySQL est installé sur Windows, et que tu rebootes pour passer sous Linux, le serveur MySQL est éteint.

Si tu as 2 machines différentes et que la base de données est sur la machine Windows, il ne faut pas mettre "localhost" sur la machine Linux, mais l'adresse IP de la machine Windows.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 214 Messages

03 janv. 2011, 03:37

Sur la meme machine, j'ai windows, j'ai installe XAMPP et je travaille sur mon site, et aussi j'ai installe VNWare afin d'apprendre un peu Linux, j'ai instale Ubuntu Desktop, sur ce dernier, j'ai installe: apache2, PHP5, MySQL, phpmyadmin, sur vista tout marche bien, alors que je ne peux pas se connecter au serveur sous Ubuntu, sachant que je peux acceder au phpmyadmin avec le login et mot de passe: http://localhost/phpmyadmin, et le repertoire du site aussi; ci-apres une image demonstrative.

Image

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 janv. 2011, 18:58

heu il manque une précision la : le problème dont tu parle est bien un site web sur la VM (virtual machine) de A à Z (c'est dire que tout est dans la VM, pas de demande de l'hote vers la VM ou l'inverse) ?

si oui c'est que tu un problème de conf de php ou mysql.
a tu essayer la connexion avec le terminal ? (mysql -u root -p) ? le -p est pour la demande du mot de passe, à virer s'il n'y en a pas.

ton message d'erreur indique que c'est l'utilisateur www-data qui essai de se connecter au serveur mysql et cela sans mot de passe (et non pas l'utilisateur root).

est ce que l'utilisateur www-data (qui est celui sous lequel apache "tourne" ?) à le droit de discuter avec mysql ?

est ce que tu a indiquer des valeurs par défaut dans le php.ini pour la connexion au serveur mysql ? (mysql.default_host, mysql.default_user ,mysql.default_password) ?

le fait que cela fonctionne sous Windows est totalement différente du fait que ça fonctionne pas sous ta VM c'est totalement dé-corrélé).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 214 Messages

04 janv. 2011, 05:03

heu il manque une précision la : le problème dont tu parle est bien un site web sur la VM (virtual machine) de A à Z (c'est dire que tout est dans la VM, pas de demande de l'hote vers la VM ou l'inverse) ?
Tous les dossiers et fichiers existent sur la VM, et meme les testes se font via la VM.
si oui c'est que tu un problème de conf de php ou mysql.
a tu essayer la connexion avec le terminal ? (mysql -u root -p) ? le -p est pour la demande du mot de passe, à virer s'il n'y en a pas.
Oui c'est fait, et le mot de passe est correct.
ton message d'erreur indique que c'est l'utilisateur www-data qui essai de se connecter au serveur mysql et cela sans mot de passe (et non pas l'utilisateur root).
est ce que l'utilisateur www-data (qui est celui sous lequel apache "tourne" ?) à le droit de discuter avec mysql ?
Je ne pense pas que cet utilisateur existe, voila la liste des utilisateurs MySQL:
Image
est ce que tu a indiquer des valeurs par défaut dans le php.ini pour la connexion au serveur mysql ? (mysql.default_host, mysql.default_user ,mysql.default_password) ?

Ouverture du fichier:

Code : Tout sélectionner

alfirdaous@ubuntu:~$ sudo gedit /etc/php5/apache2/php.ini
Modification:

Code : Tout sélectionner

mysql.default_host = 'localhost' mysql.default_user = 'root' mysql.default_password = '123123'
Restart:

Code : Tout sélectionner

alfirdaous@ubuntu:~$ sudo /etc/init.d/apache2 restart * Restarting web server apache2 ... waiting [ OK ]
En fin de compte, et apres ces modifications, j'obtiens cela:

Code : Tout sélectionner

Unable to select table: No database selected
Alors que les BD existent au repertoire mysql (var/lib/mysql).

J'ai separe les fichiers, j'ai mis un autre exemple pour savoir c'est quoi l'erreur, ca me retourne:

Code : Tout sélectionner

Can't find file: './alfirdao_hadith/hadith_koutoub.frm' (errno: 13)
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123123';
# Codage
$Charset = 'utf8';

# Liste des DBs
$db_hadith 			= 'alfirdao_hadith';

// connection à la DB
$link = mysql_connect($dbhost,$dbuser,$dbpass);
//echo $link;
if ($link)
{
	echo 'connected<br>';
	}

mysql_set_charset($Charset,$link);  
mysql_query("SET NAMES $Charset;", $link) or die (mysql_error());

mysql_select_db($db_hadith) or die ('Erreur de selection de la BD hadith: '.mysql_error());

	$had = 'SELECT * FROM hadith_koutoub WHERE kitab_en = "'.$cat.'"';

	echo $had;

	$hq = mysql_query($had) OR DIE (mysql_erro());

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 janv. 2011, 13:51

les bases sont visibles dans phpmyadmin ou en console avec show databases ?

a tu essayé de créer une autre base et de recreer les tables dedans ?


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 214 Messages

07 janv. 2011, 03:32

les bases sont visibles dans phpmyadmin ou en console avec show databases ?

a tu essayé de créer une autre base et de recreer les tables dedans ?


@+
J'ai tout refais, en misant une autre mise a jour, et ca marche, et c'est quoi le probleme exactement alors que j'ai pas cet utilisateur www-data