2010-09-17 8 views
50

Acabo de crear una base de datos en mysql en mi servidor. Quiero conectarme a esto a través de mi sitio web usando php. Este es el contenido de mi archivo de conexiones:número de puerto del servidor 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); 

sé lo que el nombre de usuario/contraseñas son, y sé que la dirección IP del servidor. Lo que me pregunto es ¿cómo sé qué puerto usar?

+1

¿Qué tipo de máquina es esta? Si su Linux verifica si mysqld se está ejecutando, ya sea "service mysqld status" o "/etc/init.d/mysqld status" como root. – Chris

+0

@Chris, Se está ejecutando en un servidor de Windows, 2008. – 109221793

Respuesta

62

Si su servidor MySQL se ejecuta en las configuraciones predeterminadas, no necesita especificar eso.

puerto MySQL por defecto es 3306.

[actualizado para mostrar mysql_error() uso]

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

He intentado tanto la dirección IP por sí mismo, y con: 3306 adjunto al final de la misma, ninguno funciona. ¿Hay alguna manera de averiguar si hay un puerto diferente? No configuré este servidor. – 109221793

+0

Mejor que compruebe cuál es el error que está recibiendo de mysql_connect(). Use la función mysql_error() para eso. Saber cuál es el error nos ayudará a descubrir qué está pasando y cuál es el problema real. – Mchl

+0

El error es: No se puede conectar al servidor MySQL en 'xxx.xx.xx.xx' (10060) – 109221793

2

Si especifica 'localhost' por defecto bibliotecas cliente para el uso de la toma de la instalación del sistema de archivos en un sistema Unix - probando el valor mysql_default_socket de php.ini (si está configurado) y luego el valor my.cnf.

Si se conecta mediante una herramienta diferente, prueba el comando "variables muestran como '% zócalo%'"

Si desea utilizar un puerto de red (que es un poquito más lento) a continuación, intente especificar 127,0 .0.1 o una interfaz física asociada con la máquina.

9

mira esto tio

<?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

puerto por defecto de MySQL es la olla de 3306

por defecto del servidor SQL es 1433

4

si usted quiere tener su puerto como una variable , usted puede escribir php como este:

$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

En Windows, si usted quiere saber el número puerto de su anfitrión local en el que se está ejecutando MySQL puede utilizar esta consulta en MySQL cliente de línea de comandos -

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) 

se le dará el número de puerto en el que MySQL se está ejecutando.

1

Esta es una visualización solo PDO, ya que la biblioteca mysql_* está en desuso.

<?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(); 
    } 
?> 

Tenga en cuenta que esta pregunta OP parece no ser sobre los números de puerto después de todo. Si está utilizando el puerto predeterminado de 3306 siempre, considere quitarlo de la uri, es decir, elimine la parte port=$port;.

Si a menudo cambia los puertos, considere el uso del puerto anterior para mayor capacidad de mantenimiento con los cambios realizados en la variable $port.

Algunas posibles errores devueltos desde arriba:

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. 

En el error abajo, que son, al menos, cada vez más cerca, después de cambiar nuestra información de conexión:

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

Después de más cambios, nos están muy cerca ahora, pero no del todo:

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

Del manual en 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

¿Puedes explicar más tu respuesta? – soundslikeodd

+0

número de puerto 3306 se usa para MySQL y tomcat usando 8080 port.more números de puerto están disponibles para ejecutar los servidores o software lo que sea para nuestra compilación instantánea ...8080 es el número predeterminado, así que solo estamos recibiendo un error de puerto en eclipse IDE. jvm y tomcat siempre prefieren el 8080.3306 es el número de puerto predeterminado para MySQL. Por lo tanto, no quiero mencionar cada vez como "localhost: 3306" –

+0

Por favor, edite su respuesta con una explicación. – soundslikeodd

Cuestiones relacionadas