2010-09-17 7 views
50

Je viens de créer une base de données sur mysql sur mon serveur. Je veux me connecter à cela via mon site web en utilisant php. Ceci est le contenu de mon fichier de connexions:Numéro de port du serveur mysql

$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 sais ce que le nom d'utilisateur/mot de passe sont, et je sais que l'adresse IP du serveur. Ce que je me demande simplement, c'est comment puis-je savoir quel port utiliser?

+1

De quel type de machine s'agit-il? Si son linux vérifie si mysqld est en cours d'exécution, soit "service mysqld status" soit "/etc/init.d/mysqld status" en tant que root. – Chris

+0

@Chris, Il fonctionne sur un serveur Windows, 2008. – 109221793

Répondre

62

Si votre serveur MySQL fonctionne avec les paramètres par défaut, vous n'avez pas besoin de le spécifier.

port par défaut MySQL est 3306.

[mis à jour pour afficher l'utilisation du mysql_error()]

$conn = mysql_connect($dbhost, $dbuser, $dbpass) 
    or die('Error connecting to mysql: '.mysql_error()); 
+0

J'ai essayé l'adresse IP de son propre chef, et avec: 3306 ajouté à la fin de celui-ci, aucun ne fonctionne. Y a-t-il un moyen de savoir s'il y a un port différent? Je n'ai pas configuré ce serveur. – 109221793

+0

Fitst vous devriez vérifier quelle est l'erreur que vous obtenez de mysql_connect(). Utilisez la fonction mysql_error() pour cela. Savoir quelle est l'erreur nous aidera à savoir ce qui se passe et quel est le problème réel. – Mchl

+0

L'erreur est: Impossible de se connecter au serveur MySQL sur 'xxx.xx.xx.xx' (10060) – 109221793

2

Si vous spécifiez 'localhost' par défaut libs client à l'aide de la prise de système de système de fichiers sur un système Unix - essayer la valeur mysql_default_socket de php.ini (si elle est définie) puis la valeur my.cnf.

Si vous vous connectez à l'aide d'un autre outil, essayez d'émettre la commande « Afficher les variables comme « % socket% » »

Si vous souhaitez utiliser un port réseau (ce qui est un petit peu plus lent) puis essayez spécifier 127,0 .0.1 ou une interface physique associée à la machine.

9

Check this out 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); 
?> 
2

port par défaut de MySQL est 3306

pot par défaut du serveur SQL est 1433

4

si vous voulez avoir votre port comme une 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); 
49

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 en ligne MySQL commande client -

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 en cours d'exécution.

1

Il s'agit d'une visualisation uniquement pour PDO, car la bibliothèque mysql_* est obsolète. Notez que cette question OP ne semble pas concerner les numéros de port après tout. Si vous utilisez toujours le port par défaut 3306, pensez à le supprimer de l'uri, c'est-à-dire, supprimez la pièce port=$port;.

Si vous modifiez souvent les ports, tenez compte de l'utilisation du port ci-dessus pour plus de facilité de maintenance et des modifications apportées à la variable $port.

Quelques erreurs probables renvoyées par le 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. 

l'erreur ci-dessous, nous sommes au moins se rapprocher, après changer nos informations de connexion:

PDO Exception: SQLSTATE[HY000] [1045] Access denied for user 'GuySmiley'@'localhost' (using password: YES) 

Après d'autres changements, nous sont proches vraiment maintenant, mais pas tout à fait:

PDO Exception: SQLSTATE[HY000] [1049] Unknown database 'mustard' 

À partir du manuel sur PDO Connections:

0
<?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'; 
    } 
    ?> 
+0

Pouvez-vous expliquer votre réponse plus? – soundslikeodd

+0

numéro de port 3306 est utilisé pour MySQL et Tomcat en utilisant 8080 port.more numéros de port sont disponibles pour exécuter les serveurs ou logiciels quel que soit pour notre compilation instantanée ..8080 est par défaut pour le nombre si seulement nous obtenons erreur de port dans Eclipse IDE. jvm et tomcat préfèrent toujours le 8080.3306 est le numéro de port par défaut pour MySQL.So ne veulent pas mentionner chaque fois que "localhost: 3306" –

+0

S'il vous plaît modifier votre réponse avec une explication. – soundslikeodd