Je viens de créer une base de données sur mysql sur mon serveur. Je veux me connecter à ceci via mon site web en utilisant php. Voici le contenu de mon fichier de connexion:
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die('Error connecting to mysql');
$dbname = 'epub';
mysql_select_db($dbname);
Je connais le nom d'utilisateur/mot de passe et l'adresse IP du serveur. Ce que je me demande, c'est comment savoir quel port utiliser?
Si votre serveur MySQL fonctionne avec les paramètres par défaut, vous n'avez pas besoin de le spécifier.
Le port MySQL par défaut est 3306.
[mis à jour pour montrer l'utilisation de mysql_error ()]
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die('Error connecting to mysql: '.mysql_error());
Pour Windows, si vous voulez connaître le numéro de port de votre hôte local sur lequel Mysql est en cours d'exécution, vous pouvez utiliser cette requête sur le client en ligne de commande MySQL -
SHOW VARIABLES WHERE Variable_name = 'port';
mysql> SHOW VARIABLES WHERE Variable_name = 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.00 sec)
Il vous donnera le numéro de port sur lequel MySQL est exécuté.
vérifier ce mec
<?php
// we connect to example.com and port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
// we connect to localhost at port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
si vous voulez avoir votre port en tant que variable, vous pouvez écrire php comme ceci:
$username = user;
$password = pw;
$Host = 127.0.0.1;
$database = dbname;
$port = 3308;
$conn = mysql_connect($Host.':'.$port, $username, $password);
$db=mysql_select_db($database,$conn);
le port par défaut de mysql est 3306
le pot par défaut du serveur SQL est 1433
Ceci est une visualisation uniquement pour PDO, car la bibliothèque mysql_*
est obsolète.
<?php
// Begin Vault (this is in a vault, not actually hard-coded)
$Host="hostname";
$username="GuySmiley";
$password="thePassword";
$dbname="dbname";
$port="3306";
// End Vault
try {
$dbh = new PDO("mysql:Host=$Host;port=$port;dbname=$dbname;charset=utf8", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "I am connected.<br/>";
// ... continue with your code
// PDO closes connection at end of script
} catch (PDOException $e) {
echo 'PDO Exception: ' . $e->getMessage();
exit();
}
?>
Notez que cette question OP ne semble finalement pas concerner les numéros de port. Si vous utilisez toujours le port par défaut de 3306
, envisagez de le supprimer de l'URI, c'est-à-dire de supprimer la partie port=$port;
.
Si vous changez souvent de port, tenez compte de l'utilisation du port ci-dessus pour améliorer la facilité de maintenance en apportant des modifications à la variable $port
.
Quelques erreurs probables renvoyées d'en haut:
PDO Exception: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
PDO Exception: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such Host is known.
Dans l'erreur ci-dessous, nous nous rapprochons au moins, après modification nos informations de connexion:
PDO Exception: SQLSTATE[HY000] [1045] Access denied for user 'GuySmiley'@'localhost' (using password: YES)
Après d'autres modifications, nous sommes vraiment proches maintenant, mais pas tout à fait:
PDO Exception: SQLSTATE[HY000] [1049] Unknown database 'mustard'
Extrait du manuel sur Connexions PDO :
Si vous spécifiez 'localhost', la bibliothèque client utilise par défaut le socket du système de fichiers sur un système Unix - essayez la valeur mysql_default_socket depuis php.ini (si définie), puis la valeur my.cnf.
Si vous vous connectez à l'aide d'un autre outil, essayez de lancer la commande "show variables telles que '% socket%'"
Si vous souhaitez utiliser un port réseau (qui est un peu plus lent), essayez de spécifier 127.0.0.1 ou une interface physique associée à la machine.
essayer
$conn = mysql_connect($Host, $username, $password, $port);
<?php
$dbhost = 'localhost:3306';
//3306 default port number $dbhost='localhost'; is enough to specify the port number
//when we are utilizing xammp default port number is 8080.
$dbuser = 'root';
$dbpass = '';
$db='users';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$db) or die ("could not connect to mysql");
// mysqli_select_db("users") or die ("no database");
if(! $conn ) {
die('Could not connect: ' . mysqli_error($conn));
}else{
echo 'Connected successfully';
}
?>