Bonjour, Dans le wamp 3.1.7 64 bits Windows 10 que j'utilise, je viens de passer, via la fenêtre wamp, de la version 5.6.40 de PHP à la version 7.3.1. J'ai redémarré le serveur local, tout s'est bien passé (l'icône W est verte), mais la connexion à MySQL ne se fait plus. Sur les pages web qui fonctionnaient en PHP 5.6, je lis : "Warning: mysqli_connect(): (HY000/2002): Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusée. in C:\wamp64\www\". Quelqu'un connaît-il la solution à ce problème ?
Ma configuration :
------ Wampserver configuration report Wed, 22 May 2019 15:04:06 +0000 - Windows NT 10.0 build 17134 (Windows 10) - Wampserver version 3.1.7 - 64bit - Install directory: c:/wamp64 - Default browser: C:/Program Files (x86)/Mozilla Firefox/firefox.exe - Default text editor: C:/Program Files (x86)/Notepad++/notepad++.exe - Apache 2.4.37 - Port 80 - Additional Apache listening ports: - PHP 7.3.1 - MySQL 5.7.24 Port 3308 MySQL basedir = c:/wamp64/bin/mysql/mysql5.7.24 MySQL datadir = c:/wamp64/bin/mysql/mysql5.7.24/data - MariaDB 10.3.12 Port 3307 MariaDB basedir = c:/wamp64/bin/mariadb/mariadb10.3.12 MariaDB datadir = c:/wamp64/bin/mariadb/mariadb10.3.12/data - PHP 5.6.40 for CLI (Internal Wampserver PHP scripts) - PhpMyAdmin 4.8.4 - Adminer 4.7.0 ------ Wampserver configuration ------ AliasSubmenu = off - NotCheckVirtualHost = off NotCheckDuplicate = off - ItemServicesNames = off VirtualHostSubMenu = on - ProjectSubMenu = off HomepageAtStartup = off - urlAddLocalhost = off MenuItemOnline = off - VhostAllLocalIp = off SupportMySQL = on - SupportMariaDB = on ShowphmyadMenu = on - ShowadminerMenu = on NotVerifyPATH = off - HostsLinesLimit = 5000 NotVerifyHosts = off - NotVerifyTLD = off AutoCleanLogs = on - AutoCleanLogsMax = 1000 AutoCleanLogsMin = 50 - AutoCleanTmp = on AutoCleanTmpMax = 1000 - CreateSymlink = symlink
> de la version 5.6.40 de PHP à la version 7.3.1. PHP 5.6.40 supporte encore la bibliothèque mysql bien qu'elle soit déclarée obsolète alors que PHP 7.3.1 ne supporte plus du tout la bibliothèque mysql mais uniquement mysqli.
Il faut donc que vos scripts php utilisent mysqli.
Merci Otomatic, mais comme l'indique le message d'erreur que j'ai rapporté, je suis bien en mysqli : "Warning: mysqli_connect(): (HY000/2002)…". J'ai effectué le passage complet de tous mes site en mysqli il y a une paire d'années, plus aucun MySQL ne subsiste. Une autre idée ? (je continue aussi à chercher sur Google, mais l'erreur en question est mentionnée pour d'autres types de problèmes). Merci en tout cas Stéphane
A priori, problème sur utilisateur et/ou mot de passe.
Il existe un script : wamp\www\testmysql.php pour tester la connexion, à MySQL. Le modifier pour y mettre les bonnes valeurs et le lancer par : 'http://localhost/testmysql.php'
Le fichier testmysql.php me donne le même message d'erreur, autant avec : • $mysqli = new mysqli('127.0.0.1', 'root', '', ''); • $mysqli = new mysqli('localhost', 'root', '', '');
et également si j'indique une base (je n'ai pas défini de mot de passe).
Par contre, je peux me connecter à phpMyAdmin sans problème via localhost. Je suis perplexe...
En complément, j'ai lancé un test sur le port utilisé par MySQL qui semble correct : Test for TCP Your port 3308 is used by a processus with PID = 8124 The processus of PID 8124 is 'mysqld.exe' Session: Services The service of PID 8124 for 'mysqld.exe' is 'wampmysqld64' This service is from Wampserver - It is correct
Pour résumer : sous PHP5.6.40, tout marche bien. En sélectionnant PHP 7.3.1 dans wamp 3.1.7, l'accès à MySQL via les instructions mysqli entraîne une erreur de connexion pour tous mes sites (qui fonctionnaient bien avant). Mais phpMyAdmin reste accessible en se connectant aussi, d'après wampmanager.conf, sur le port 3308. Dans my.ini, on est aussi sur le port 3306.
> MySQL 5.7.24 Port 3308 Si vous n'utilisez pas le port par défaut 3306, ,il faut impérativement préciser le port utilisé dans la procédure de connexion à MySQL.
Ça fonctionne pour PhpMyAdmin parce que le fichier de configuration de PhpMyAdmin : wamp64\apps\phpmyadmin4.8.5\config.inc.php met automatiquement le port dans l'appel de connexion.
Quand j'ai installé cette version de wamp, la connexion MySQL ne se faisait pas et j'ai trouvé sur un forum cette solution qui a tout résolu : se connecter au port 3308 plutôt qu'au port par défaut. Je ne connais pas l'explication intime à cette bizarrerie, mais ça a fonctionné.
Mais c'est bon, le problème est résolu : en php 5.6, je n'ai pas mentionné le port dans mysqli_connect et ça fonctionnait sans broncher. Avec php 7.3, ce 5ème paramètres est nécessaire…
C'est un soulagement, même si ça ne va pas être souple pour l'envoi sur le serveur (je vais réessayer de faire tourner le MySQL de wamp sur le port par défaut).
Grand merci pour cette solution. Pour la peine, je vais oser un jeu de mot/compliment qu'on a dû te servir souvent : Otomatik est un véritable manuel (de PHP) ;-)
Stéphane (qui serait plutôt une banane)
Modifie 2 fois. Derniere modification le 22/05/2019 à 19:57 par scriptoLAB.
Merci pour le conseil, Otomatik. Le test me dit que le port 3306 n'est pas utilisé par le protocole TCP. J'ai vu parmi les outils "Utiliser un port autre que 3308". Je vais tenter en espérant qu'il généralisera les modifications car le ne sais plus précisément dans quels fichiers j'ai changé 3306 en 3308.
Encore merci
Stéphane
Modifie 1 fois. Derniere modification le 22/05/2019 à 20:41 par scriptoLAB.
Pour info et pour clore la discussion : l'outil "Utiliser un port autre que 3308" a reconfiguré tout seul my.ini, wampmanager.conf (et sans doute d'autres fichiers) en restituant le port par défaut 3306. Tout fonctionne à merveille, le blocage de MySQL sur le port 3306 au moment de l'installation de cette version de wamp appartient au passé, et c'est tant mieux !
Bonne soirée à tous. Et bravo ce forum sans jQuery ni toutes ces cochonneries qui alourdissent les sites d'aujourd'hui. Sa légèreté rend nostalgique.