[Debian] Probleme avec Mysql

Résolu/Fermé
Utilisateur anonyme - 4 août 2007 à 19:57
 Utilisateur anonyme - 5 août 2007 à 15:14
Bonjour,
je suis sous Debian 4.0, J' ai installer Apache 2.2, PHP 5.2 et MySQL 5.0

Et je n'arrive pas a me connecter a ma base de données pour y rajouter des données
Je ne pense pas que sa vienne de mon code source :

mysql_connect("localhost", "root", "");
mysql_select_db("$base");
mysql_query("INSERT INTO `table` VALUES '' , 'nom' , 'message'") or die ("Impossible de se connecter à la base de données");

Ce code m'affiche toujours : Impossible de se connecter à la base de donnée

Mais je ne vois pas pourquoi il ne veut pas se connecter
Une idée ?


PS : je débute sous linux soyer pas trop méchant

15 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 15:09
ok, j'ai compris pourquoi
essai
<?
$adresse_serveur_base = 'localhost';
$login_serveur = 'root';
$MDP_serveur = '';
$base = 'dev';

$req = "INSERT INTO `table` VALUES ('nom' , 'message')";
mysql_connect($adresse_serveur_base, $login_serveur,$MDP_serveur);
mysql_select_db($base);
mysql_query($req) or die ("Impossible de se connecter à la base de données");
?>


En fait il faut eviter d'utiliser des mots clés mysql
Dans ton cas tu as mis le nom de la table "table", mais table c'est un mot clé mysql d'où le conflit

mysql> create table dev (nom varchar(100), message varchar(500));
Query OK, 0 rows affected (0.00 sec)

mysql> create table table (nom varchar(100), message varchar(500));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table (nom varchar(100), message varchar(500))' at line 1
mysql> create table `table` (nom varchar(100), message varchar(500));
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO table VALUES('aaa','ok');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table VALUES('aaa','ok')' at line 1
mysql> INSERT INTO `table` VALUES('aaa','ok');
Query OK, 1 row affected (0.00 sec)

mysql> select * from table;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table' at line 1
mysql> select * from `table`;
+------+---------+
| nom  | message |
+------+---------+
| aaa  | ok      |
+------+---------+
1 row in set (0.06 sec)

mysql>
2
Utilisateur anonyme
5 août 2007 à 15:13
<?
$adresse_serveur_base = 'localhost';
$login_serveur = 'root';
$MDP_serveur = '';
$base = 'dev';

$req = "INSERT INTO `table` VALUES ('nom' , 'message')";
mysql_connect($adresse_serveur_base, $login_serveur,$MDP_serveur);
mysql_select_db($base);
mysql_query($req) or die ("Impossible de se connecter à la base de données");
?>

marche nikel
0
Utilisateur anonyme > Utilisateur anonyme
5 août 2007 à 15:14
merci encore
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
4 août 2007 à 20:35
Salut,

ouvre une console et tape
mysql -u root -p
et suis les instructions
ensuite affiche ce que tu vois à l'écran
0
Utilisateur anonyme
4 août 2007 à 23:21
mysql -u root -p affiche :

Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
0
Utilisateur anonyme
5 août 2007 à 12:33
je pense que sa vient plus d un probleme de configuration d apache ou de mysql
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 473
5 août 2007 à 12:50
Salut,

mysql_connect("localhost", "root", "");
mysql_select_db("$base");
mysql_query("INSERT INTO `table` VALUES '' , 'nom' , 'message'") or die ("Impossible de se connecter à la base de données");

Ce code m'affiche toujours : Impossible de se connecter à la base de donnée


ok mais c'est le message de retour écrit dans ton script ! Le truc se serait de savoir pourquoi tu ne peux te connecter (mot de passe, etc ....).

:-))
0
Utilisateur anonyme
5 août 2007 à 12:55
oui mais comment savoir se qui ne vas pas

Mais je trouve sa très bizar car via l interface de phpmyadmin ou en ligne de commande j arrive a me connecter
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 12:59
Salut,

tu n'as pas messages d'erreur pour la connection à mysql
c'est plutôt le nom de la base qui pose de problèmes
que contient $dabase

essai pour voir

mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use nomdetabase
0
Utilisateur anonyme
5 août 2007 à 13:04
$base contient 'dev'

donc je fais (je pense)

mysql> use dev
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 473
5 août 2007 à 13:04
voir aussi pitêtre en indiquant le mot de passe :
mysql_connect("localhost", "root", "");
parce que là c'est pas indiqué !

mais peut-être que je dis des bêtises .....

:-))
0
Utilisateur anonyme
5 août 2007 à 13:06
il n est pas indiquer car il n y en a pas
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 13:22
affiche ton script complet pour voir
0
Utilisateur anonyme
5 août 2007 à 13:42
<?

$adresse_serveur_base = 'localhost';

$login_serveur = 'root';

$MDP_serveur = '';

$base = 'dev';

mysql_connect("$adresse_serveur_base", "$login_serveur", "$MDP_serveur");
mysql_select_db("$base");
mysql_query("INSERT INTO `table` VALUES '' , 'nom' , 'message'") or die ("Impossible de se connecter à la base de données");

?>
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 14:01
mysql_query("INSERT INTO nomtable VALUES ('nom','message')") or die ("Impossible de se connecter à la base de données"); 
`table` c'est quoi?
mets le nom de la table où tu veux inserer les données
0
Utilisateur anonyme
5 août 2007 à 14:08
le nom de la table c'est table
et j ai essayer avec plusieur autre table sa ne marche pas

en plus le problème n est pas la car je n arrive pas a me connecter a ma base de données depuis un script PHP alors que via phpmyadmin ou avec un terminal il n y a aucun problème

je pense donc plus a un problème de configuration soit de apache ou mysql (ou peu etre de PHP)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 14:16
je pense donc plus a un problème de configuration soit de apache ou mysql (ou peu etre de PHP)

je ne pense pas
si tu peux te connecter avec phpmyadmin ça devra te suffire pour enlever cette possibilité

je crois que c'est plutôt une erreur de syntaxe dans script, d'ailleurs je t'ai donné une possibilité
essaie ça
<?
$adresse_serveur_base = 'localhost';
$login_serveur = 'root';
$MDP_serveur = '';
$base = 'dev';

$req = "INSERT INTO table VALUES ('nom' , 'message')";
mysql_connect($adresse_serveur_base", $login_serveur,$MDP_serveur);
mysql_select_db($base);
mysql_query($req) or die ("Impossible de se connecter à la base de données");
?>
0
Utilisateur anonyme
5 août 2007 à 14:21
avec :
<?
$adresse_serveur_base = 'localhost';
$login_serveur = 'root';
$MDP_serveur = '';
$base = 'dev';

$req = "INSERT INTO table VALUES ('nom' , 'message')";
mysql_connect($adresse_serveur_base", $login_serveur,$MDP_serveur);
mysql_select_db($base);
mysql_query($req) or die ("Impossible de se connecter à la base de données");
?>


J ai : Parse error: syntax error, unexpected '"' in /var/www/test1.php on line 8

j enlève l apostrophe

Et j ai toujours ce maudit
Impossible de se connecter à la base de données
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 14:18
affiche aussi le résultat de
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use dev
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
0
Utilisateur anonyme
5 août 2007 à 14:25
mysql> show tables;
+---------------+
| Tables_in_dev |
+---------------+
| table |
+---------------+
1 row in set (0.00 sec)

mysql>
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 14:29
je teste ce script et ça marche sans problèmes chez moi
<?
$adresse_serveur_base = 'localhost';
$login_serveur = 'root';
$MDP_serveur = 'aaaaaaaa';
$base = 'dev';

$req = "INSERT INTO personel VALUES ('nom' , 'message')";
mysql_connect($adresse_serveur_base, $login_serveur,$MDP_serveur);
mysql_select_db($base);
mysql_query($req) or die ("Impossible de se connecter à la base de données");
?>
affiche
ps aux | grep mysql
ls -l /var/lib/mysql
0
Utilisateur anonyme
5 août 2007 à 14:33
jerome@debian:~$ ps aux | grep mysql
root 2802 0.0 0.2 2672 1340 ? S Aug04 0:00 /bin/sh /usr/bin/mysqld_safe
mysql 2839 0.0 3.3 126888 17116 ? Sl Aug04 0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
root 2840 0.0 0.0 1560 508 ? S Aug04 0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
jeje 15195 0.0 0.4 6920 2504 pts/0 S+ 14:29 0:00 mysql -u root -p
jeje 15277 0.0 0.1 2880 760 pts/1 R+ 14:31 0:00 grep mysql

jeje@debian:~$ ls -l /var/lib/mysql
total 20540
-rw-r--r-- 1 root root 0 2007-08-04 17:36 debian-5.0.flag
drwx------ 2 mysql mysql 4096 2007-08-05 14:30 dev
-rw-rw---- 1 mysql mysql 10485760 2007-08-04 19:03 ibdata1
-rw-rw---- 1 mysql mysql 5242880 2007-08-04 19:03 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 2007-08-04 17:36 ib_logfile1
drwxr-xr-x 2 mysql root 4096 2007-08-04 19:03 mysql
-rw------- 1 root root 6 2007-08-04 17:36 mysql_upgrade_info
jeje@debian:~$
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 14:38
et
 ls -ld /var/lib/mysql
0
Utilisateur anonyme
5 août 2007 à 14:41
jeje@debian:~$ ls -ld /var/lib/mysql
drwxr-xr-x 6 mysql mysql 4096 2007-08-04 20:02 /var/lib/mysql
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 14:46
tu dis que ce script te donne le message d'erreur?
<?
$adresse_serveur_base = 'localhost';
$login_serveur = 'root';
$MDP_serveur = '';
$base = 'dev';

$req = "INSERT INTO table VALUES ('nom' , 'message')";
mysql_connect($adresse_serveur_base, $login_serveur,$MDP_serveur);
mysql_select_db($base);
mysql_query($req) or die ("Impossible de se connecter à la base de données");
?>
0
Utilisateur anonyme
5 août 2007 à 14:52
oui
et sa commence a m énervé parce que je ne vois pas d ou cela vient
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 14:51
essaie aussi en ligne de commande
INSERT INTO table VALUES ('nom' , 'message');
0
Utilisateur anonyme
5 août 2007 à 14:59
mysql> INSERT INTO table VALUES ('nom' , 'message');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table VALUES ('nom' , 'message')' at line 1


mysql> INSERT INTO `table` ( `nom` , `message` ) VALUES ('yugjgh', 'jhgjgh');
Query OK, 1 row affected (0.00 sec)

J ai pas compris la
0
Utilisateur anonyme
5 août 2007 à 15:07
j ai modifier mon script

mysql_connect("localhost", "root", "");
mysql_select_db("$base");

// On insert les variable dans la base de donnée
mysql_query("INSERT INTO `table` (  `expediteur`  `message` ) 
VALUES ( '$nom', '$message')") 
or die ("Impossible de se connecter à la base de données");


Et maintenant sa marche

je trouve qu'il est capricieux quand meme

en tous cas merci a toi lami20j
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2007 à 15:11
je trouve qu'il est capricieux quand meme
c'est normal quand tu utilises des mots clés mysql pour nommer ta table
voir le message precédent l'explications avec les commandes

et n'oublie pas que tu t'es trompé aussi pour la syntaxe de la commande INSERT

bonne continuation
0