Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mysql et php5.6

128 views
Skip to first unread message

ajh-valmer

unread,
Apr 11, 2021, 2:10:03 PM4/11/21
to
Bonsoir,

J'ai upgradé mon serveur Buster. MySQL est passée en version 8.

Depuis, les scripts PHP 5.6 de mon site ne passent plus :
"Erreur connexion serveur Mysql :
Erreur de la requête 1.SELECT COUNT(numero) FROM ..."

C'est bien le module php5.6 qui est installé sous Apache2.
La dernière version est PHP 7.4.

Comment se fait-il que les scripts php5.6 soient devenus obsolètes,
comme si le serveur était en 7.4 ?

Serait-ce aussi le SQL qui a évolué (mysql version 8) ?

Merci de votre aide urgente, car maintenant le site ne marche plus.

Bonne soirée,

A. Valmer

ajh-valmer

unread,
Apr 11, 2021, 5:00:03 PM4/11/21
to
On Sunday 11 April 2021 21:47:41 Dethegeek wrote:
> Vérifie que tu as bien installé et activé le module mysql pour php 7.
> Le langage SQL en lui même n'a pas fondamentalement changé.

C'est le module php 5.6 qui est activé.

Si je mets le module php 7.4, c'est bon nombre de scripts php
que je dois modifier.

Jean-Michel OLTRA

unread,
Apr 12, 2021, 1:40:02 AM4/12/21
to

Bonjour,


Le dimanche 11 avril 2021, ajh-valmer a écrit...


> J'ai upgradé mon serveur Buster. MySQL est passée en version 8.

> Depuis, les scripts PHP 5.6 de mon site ne passent plus :
> "Erreur connexion serveur Mysql :
> Erreur de la requête 1.SELECT COUNT(numero) FROM ..."

J'aurais tendance à penser que ce n'est pas lié à la version de php, mais au
serveur sql. Le serveur tourne t-il ? Peux tu t'y connecter autrement qu'en
php (avec le client mysql par exemple) ?

--
jm

ajh-valmer

unread,
Apr 12, 2021, 9:10:03 AM4/12/21
to
Oui, tout à fait et aussi avec phpmyadmin.

La connexion à la base ne se fait plus, même avec ce code :

$DB_USER = 'xxx';
$DB_PASS = 'xxx';
$DB_SERVER = 'localhost';
$DB_BASE = 'xxx';
// Connection mysql
if (!$CNX = mysql_connect($DB_BASE, $DB_USER, $DB_PASS, $DB_SERVER)) {
print ("Erreur de connexion serveur Mysql : $CNX"); }

Réponse :
"Erreur de connexion serveur Mysql : Erreur de la requete".

Jean-Michel OLTRA

unread,
Apr 12, 2021, 12:10:03 PM4/12/21
to

Bonjour,


Le lundi 12 avril 2021, ajh-valmer a écrit...


> La connexion à la base ne se fait plus, même avec ce code :

> $DB_USER = 'xxx';
> $DB_PASS = 'xxx';
> $DB_SERVER = 'localhost';
> $DB_BASE = 'xxx';
> // Connection mysql
> if (!$CNX = mysql_connect($DB_BASE, $DB_USER, $DB_PASS, $DB_SERVER)) {
> print ("Erreur de connexion serveur Mysql : $CNX"); }

> Réponse :
> "Erreur de connexion serveur Mysql : Erreur de la requete".

Tu es bien certain de la validité de ton appel mysql_connect ?
https://www.php.net/manual/en/function.mysql-connect.php
donne un autre ordre pour les paramètres.
Et indique aussi que mysql_connect est supprimé en php 7. Tu devrais y
penser.



--
jm

ajh-valmer

unread,
Apr 12, 2021, 12:40:04 PM4/12/21
to
Le serveur est en php 5.6.
La syntaxe ci-dessus n'est pas supprimée en php 5.6.

J'ai tenté "mysqli_connect...",
que ce soit en 5.6 ou 7.4, c'est pareil, message d'erreur ci-dessus.

Normalement, il devrait accepter les scripts php 5

Jean-Michel OLTRA

unread,
Apr 12, 2021, 6:30:02 PM4/12/21
to

Bonjour,


Le lundi 12 avril 2021, ajh-valmer a écrit...


> > > if (!$CNX = mysql_connect($DB_BASE, $DB_USER, $DB_PASS, $DB_SERVER)) {

> La syntaxe ci-dessus n'est pas supprimée en php 5.6.

> Normalement, il devrait accepter les scripts php 5

Que mysql_connect existe encore c'est une chose.
Que l'ordre des paramètres que tu passes dans ce que tu as écrit soit
valide, ça en est une autre. A moins que tu aies mal recopié ton véritable
code de connexion ?

Ceci étant, je n'utilise pas mysql_connect, mais "new mysqli(server,
username, password, db)".

--
jm

ajh-valmer

unread,
Apr 14, 2021, 5:40:03 AM4/14/21
to
Ce code ne fonctionne pas non plus.
Il n'y a pas d'erreur.

J'ai lu qu'il fallait utiliser mysqli ou PDO à partir de la version 7.
Mais mysqli me renvoie erreur.

Bonne journée.

MERLIN Philippe

unread,
Apr 14, 2021, 6:20:03 AM4/14/21
to
Es tu sur de ta syntaxe, si je regarde la doc sur mysql_connect l'ordre des
paramètres est : serveur, base .....
A part cela je n'utilise pas PHP.
Amitiés.
Philippe Merlin

Jean-Michel OLTRA

unread,
Apr 14, 2021, 8:30:03 AM4/14/21
to

Bonjour,


Le mercredi 14 avril 2021, ajh-valmer a écrit...


> Ce code ne fonctionne pas non plus.
> Il n'y a pas d'erreur.

C'est à dire ? La connexion ne se fait pas ? Tu n'as pas d'objet mysqli ?
Si ça échoue, que donne mysqli->connect_error (et connect_errno)

Regarde les propriétés de cet objet classe mysqli ici :
https://www.php.net/manual/fr/class.mysqli.php

> Mais mysqli me renvoie erreur.

Erreur, ou pas ? Avec connect_errno et connect_error, tu devrais en savoir
un peu plus sur l'erreur de connexion.

Sinon, tu as également les logs de mysql/mariadb, si tu y as accès.

A voir si ce ne serait pas un souci de connexion sur le socket unix sur
localhost vs la connexion tcp sur le port 3306 ?

--
jm

ajh-valmer

unread,
Apr 14, 2021, 12:10:02 PM4/14/21
to
On Wednesday 14 April 2021 14:06:07 Jean-Michel OLTRA wrote:
> Erreur, ou pas ? Avec connect_errno et connect_error, tu devrais en savoir
> un peu plus sur l'erreur de connexion :

Ou et comment placer ces scripts ?
connect_errno , connect_error

> Sinon, tu as également les logs de mysql/mariadb, si tu y as accès.

C'est une base de données MySQL.

> A voir si ce ne serait pas un souci de connexion sur le socket unix sur
> localhost vs la connexion tcp sur le port 3306 ?

Tous les fichiers de mysql indiquent bien le port 3306.

Jean-Michel OLTRA

unread,
Apr 14, 2021, 4:30:02 PM4/14/21
to

Bonjour,


Le mercredi 14 avril 2021, ajh-valmer a écrit...


> > Erreur, ou pas ? Avec connect_errno et connect_error, tu devrais en savoir
> > un peu plus sur l'erreur de connexion :

> Ou et comment placer ces scripts ?
> connect_errno , connect_error

Tiens, une doc en français :
https://www.php.net/manual/fr/mysqli.quickstart.connections.php

> > Sinon, tu as également les logs de mysql/mariadb, si tu y as accès.

> C'est une base de données MySQL.

Ben, c'est un peu pareil. Si il y a un souci de connexion, l'erreur est
peut-être mentionnée dedans. Il te faudrait lire ces logs.

> > A voir si ce ne serait pas un souci de connexion sur le socket unix sur
> > localhost vs la connexion tcp sur le port 3306 ?

> Tous les fichiers de mysql indiquent bien le port 3306.

Tu devrais effectuer la requête suivante sur la base mysql :

MariaDB [mysql]> select user, plugin, host from user;
(chez moi, c'est MariaDB, pas mysql).

J'obtiens ça :

+-------------+-----------------------+-----------+
| User | plugin | Host |
+-------------+-----------------------+-----------+
| root | unix_socket | localhost |
| jm | mysql_native_password | localhost |
| mariadb.sys | mysql_native_password | localhost |
+-------------+-----------------------+-----------+

Et lire ce qui concerne l'authentification sous mysql 8.
Ton souci vient peut-être (probablement) de là.

--
jm

ajh-valmer

unread,
Apr 16, 2021, 4:40:02 PM4/16/21
to
On Wednesday 14 April 2021 14:06:07 Jean-Michel OLTRA wrote:

Voici un lien intéressant sur le sujet, passage vers mysql 8 :

https://mysqlserverteam.com/upgrading-to-mysql-8.0-here-is-what-you-need-to-know/

Ça ne migre pas si facilement.

Jean-Michel OLTRA

unread,
Apr 16, 2021, 5:40:03 PM4/16/21
to

Bonjour,


Le vendredi 16 avril 2021, ajh-valmer a écrit...
Le lien au début de ce texte explique comment faire. Et comment tester la
migration.

Au pire, avec le dump de la base (tout dépend de la volumétrie), tu peux
restaurer directement sous MySQL 8 (ce que l'auteur appelle le logical
upgrade). Ce qui pourrait être l'occasion de passer sous MariaDB.


--
jm

ajh-valmer

unread,
Apr 17, 2021, 5:00:04 PM4/17/21
to
On Wednesday 14 April 2021 22:09:38 Jean-Michel OLTRA wrote:
> Tiens, une doc en français :
> https://www.php.net/manual/fr/mysqli.quickstart.connections.php
> MariaDB [mysql]> select user, plugin, host from user;
> (chez moi, c'est MariaDB, pas mysql).
> +-------------+-----------------------+-----------+
> | User | plugin | Host |
> +-------------+-----------------------+-----------+
> | root | unix_socket | localhost |
> | jm | mysql_native_password | localhost |
> | mariadb.sys | mysql_native_password | localhost |
> +-------------+-----------------------+-----------+
> Et lire ce qui concerne l'authentification sous mysql 8.
> Ton souci vient peut-être (probablement) de là.

Merci !

J'ai réussi à me connecter à la base mysql8 par ce script :
$mysqli = new mysqli($servername, $username, $password, "association");
if ($mysqli->connect_errno) {
echo "Echec lors connexion MySQL : (" . $mysqli->connect_errno . ") " .
$mysqli->connect_error;
}

Par contre, c'est ce script php5.6 que je dois adapter en php7.4 :
=====================
$query_string="UPDATE cotisation SET email='$MAIL'
WHERE id_cotisation='$ID'";
if (!$query_string = mysqli_query($query_string)) {
print ("Erreur de la requete $query_string");
exit();
}
print ("$MAIL | ID<br />");
}
mysqli_close();
print ("OK !");
exit();
=====================

Bonne nuit,

Ajh. Valmer

Jean-Michel OLTRA

unread,
Apr 18, 2021, 1:50:03 AM4/18/21
to

Bonjour,


Le samedi 17 avril 2021, ajh-valmer a écrit...


> $mysqli = new mysqli($servername, $username, $password, "association");
> if ($mysqli->connect_errno) {
> echo "Echec lors connexion MySQL : (" . $mysqli->connect_errno . ") " .
> $mysqli->connect_error;
> }

> $query_string="UPDATE cotisation SET email='$MAIL'
> WHERE id_cotisation='$ID'";
> if (!$query_string = mysqli_query($query_string)) {
> print ("Erreur de la requete $query_string");
> exit();
> }

Tu dois utiliser l'identifiant de connexion, $mysqli obtenu plus haut.

Donc :
- soit c'est mysqli_query($mysqli, $queryString)
- soit c'est $mysqli->query($queryString)
Tout dépend de ta manière de coder : plutôt procédural (mysqli_query) ou
objet ($mysqli->query).

--
jm
0 new messages