OVH Cloud OVH Cloud

Mysql et php5.6

15 réponses
Avatar
ajh-valmer
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

5 réponses

1 2
Avatar
Jean-Michel OLTRA
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
Avatar
ajh-valmer
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.
Avatar
Jean-Michel OLTRA
Bonjour,
Le vendredi 16 avril 2021, ajh-valmer a écrit...
https://mysqlserverteam.com/upgrading-to-mysql-8.0-here-is-what-you-need-to-know/
Ça ne migre pas si facilement.

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
Avatar
ajh-valmer
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
");
}
mysqli_close();
print ("OK !");
exit();
====================
Bonne nuit,
Ajh. Valmer
Avatar
Jean-Michel OLTRA
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
1 2