Forum Linux.debian/ubuntu Fatal error: Call to undefined function: mysql_connect()

Posté par  (site web personnel) .
Étiquettes :
0
3
oct.
2006
Bonsoir,

j'utilise debian 3.1.

J'obtiens l'erreur suivante lorsque j'exécute un script php (qui doit se connecter à une BD mysql): Fatal error: Call to undefined function: mysql_connect() in /var/www/html/conferences/jmeree/php/connexion.php on line 10

Voici mon fichier phpinfo(): http://tonguim.free.fr/divers/ A travers ce fichier, il me semble que mysql n'est pas installé sur mon serveur.
J'ai donc essayé les commandes suivantes:

aptitude install mysql donne:

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture de l'information d'état étendu
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait
Pas de version candidate trouvée pour mysql
Les paquets suivants ont été conservés :
apache2-common apache2-mpm-prefork apache2-utils bind9-host bsdutils cpio
dhcp-client dnsutils exim4 exim4-base exim4-config exim4-daemon-light
flex gnupg grub gzip libapr0 libdns16 libgcc1 libgnutls11 libisc7
liblwres1 libpcre3 libsasl2 libssl0.9.7 libtasn1-2 login mdadm mount mutt
openssl passwd perl perl-base perl-modules ppp python2.3 tar util-linux
0 paquets mis à jour, 0 nouvellement installés, 0 à enlever et 39 non mis à jour.
Il est nécessaire de télécharger 0o d'archives. Après dépaquetage, 0o seront utilisés.
Écriture de l'information d'état étendu... Fait
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture de l'information d'état étendu
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait


aptitude install mysql-server-4.1 donne:

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture de l'information d'état étendu
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait
Les paquets suivants ont été conservés :
apache2-common apache2-mpm-prefork apache2-utils bind9-host bsdutils cpio
dhcp-client dnsutils exim4 exim4-base exim4-config exim4-daemon-light
flex gnupg grub gzip libapr0 libdns16 libgcc1 libgnutls11 libisc7
liblwres1 libpcre3 libsasl2 libssl0.9.7 libtasn1-2 login mdadm mount mutt
openssl passwd perl perl-base perl-modules ppp python2.3 tar util-linux
0 paquets mis à jour, 0 nouvellement installés, 0 à enlever et 39 non mis à jour.
Il est nécessaire de télécharger 0o d'archives. Après dépaquetage, 0o seront utilisés.
Écriture de l'information d'état étendu... Fait
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture de l'information d'état étendu
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait
et

aptitude install libapache2-mod-php4 donne:

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture de l'information d'état étendu
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait
Les paquets suivants ont été conservés :
apache2-common apache2-mpm-prefork apache2-utils bind9-host bsdutils cpio
dhcp-client dnsutils exim4 exim4-base exim4-config exim4-daemon-light
flex gnupg grub gzip libapr0 libdns16 libgcc1 libgnutls11 libisc7
liblwres1 libpcre3 libsasl2 libssl0.9.7 libtasn1-2 login mdadm mount mutt
openssl passwd perl perl-base perl-modules ppp python2.3 tar util-linux
0 paquets mis à jour, 0 nouvellement installés, 0 à enlever et 39 non mis à jour.
Il est nécessaire de télécharger 0o d'archives. Après dépaquetage, 0o seront utilisés.
Écriture de l'information d'état étendu... Fait
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture de l'information d'état étendu
Initialisation de l'état des paquets... Fait
Lecture des descriptions de tâches... Fait


Comment puis résoudre ce problème? Merci
  • # php.ini

    Posté par  (site web personnel) . Évalué à 1.

    Edite le fichier /etc/php/apache2/php.ini et décommente la ligne contenant "extension=mysql.so" ou "extension=mysqli.so", ça devrait fonctionner.
  • # aptitude install php4-mysql

    Posté par  (site web personnel) . Évalué à 3.

    Tout est dans le titre.
    Les modules php son packagés dans des paquets séparés.
  • # Module php4-mysql

    Posté par  . Évalué à 2.

    Apparement, il te manque le module MySQL pour PHP :
    apt-get install php4-mysql devrait faire ton bonheur.
    • [^] # Re: Module php4-mysql

      Posté par  (site web personnel) . Évalué à 1.

      Voici ce que me donne la commandeapt-get install php4-mysql

      Lecture des listes de paquets... Fait
      Construction de l'arbre des dépendances... Fait
      php4-mysql est déjà la plus récente version disponible.
      0 mis à jour, 0 nouvellement installés, 0 à enlever et 41 non mis à jour.

      Après avoir décommenté cette ligne extension=mysql.so

      j'ai voulu redémarré le serveur mysql et voici le message d'erreur que j'ai eu: web:/etc/php4/apache# /etc/init.d/mysql restart
      Stopping MySQL database server: mysqld...failed.
      /usr/bin/mysqladmin: connect to server at 'localhost' failed
      error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
      Killing MySQL database server by signal: mysqld.
      Starting MySQL database server: mysqld.
      Checking for crashed MySQL tables in the background.
      /usr/bin/mysqladmin: connect to server at 'localhost' failed
      error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
      web:/etc/php4/apache# /usr/bin/mysqladmin: connect to server at 'localhost' failed
      error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

      Le problème n'est pas encore résolu.
      • [^] # Re: Module php4-mysql

        Posté par  (site web personnel) . Évalué à 2.

        Il te manque l'utilisateur debian-sys-maint pour pouvoir démarrer tout ca, tu pourrais peut-être essayer un dpkg-reconfigure mysql-common (je ne suis pas sur du nom de paquet, tu peux essayer avec mysql, mysql-server etc...)

        Je ne suis pas sur que ca marche mais ca vaut le coup d'être essayé.
  • # Mysql est installé ?

    Posté par  (site web personnel) . Évalué à 0.

    parce que "Pas de version candidate trouvée pour mysql" dans le retour de la première commande, ça le fait pas.

    que donne "dpkg -l | grep mysql" ?

    \_o<

    • [^] # Re: Mysql est installé ?

      Posté par  (site web personnel) . Évalué à 1.

      Bonsoir,

      la commande dpkg -l | grep mysql donne:

      web:~# dpkg -l | grep mysql
      ii libdbd-mysql-p 2.9006-1 A Perl5 database interface to the MySQL data
      ii libmysqlclient 4.0.24-10sarge mysql database client library
      ii libmysqlclient 4.1.11a-4sarge mysql database client library
      ii libmysqlclient 4.1.11a-4sarge mysql database development files
      ii mysql-client-4 4.1.11a-4sarge mysql database client binaries
      ii mysql-common-4 4.1.11a-4sarge mysql database common files (e.g. /etc/mysql
      ii mysql-server-4 4.1.11a-4sarge mysql database server binaries
      ii php4-mysql 4.3.10-16 MySQL module for php4
      • [^] # Re: Mysql est installé ?

        Posté par  . Évalué à 1.

        mouai, en gros tu as les mêmes choses que moi :

        serveur:~# dpkg -l | grep mysql
        ii libdbd-mysql-p 2.9006-1 A Perl5 database interface to the MySQL dat
        ii libmysqlclient 3.23.56-3 LGPL-licensed client library for MySQL data
        ii libmysqlclient 4.0.24-10sarge mysql database client library
        ii mysql-client 4.0.24-10sarge mysql database client binaries
        ii mysql-common 4.0.24-10sarge mysql database common files (e.g. /etc/mysq
        ii mysql-server 4.0.24-10sarge mysql database server binaries
        ii php4-mysql 4.3.10-16 MySQL module for php4

        Donc ça devrait être bon (devrait...)


        c'est con mais heuuuu le serveur mysql est lancé ?
  • # le problème persiste

    Posté par  (site web personnel) . Évalué à 1.

    J'ai résolu le problème lié à l'erreur suivante error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
    grâce à des informations trouvées sur le net:

    en fait, le mot de passe de l'utilisateur 'debian-sys-maint' de la table mysql.user doit être le même que le mot de passe du même utilisateur dans le fichier de configuration suivant:
    /etc/mysql/debian.cnf. J'ai donc modifié en ligne de commande le mot de passe de l'utilisateur 'debian-sys-maint' en le mettant à vide (c'est à dire que j'ai supprimé le mot de passe), puis je l'ai également supprimé manuellement dans le fichier /etc/mysql/debian.cnf.

    Toutefois, l'erreur suivante persiste Fatal error: Call to undefined function: mysql_connect() in /var/www/html/conferences/jmeree/php/connexion.php on line 10
    J'ai pourtant décommenté cette ligne extension=mysql.so dans ce fichier vi /etc/php4/apache2/php.ini

    Après vérification, je constate que le repertoire /usr/lib/php4/20050606/ ne contient pas la librairie mysql.so

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.