número de puerto del servidor mysql

4 minutos de lectura

avatar de usuario
109221793

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:

$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é cuál es el nombre de usuario/contraseñas y sé la dirección IP del servidor. Lo que me pregunto es ¿cómo sé qué puerto usar?

  • ¿Qué tipo de máquina es esta? Si es Linux, verifique si mysqld se está ejecutando, ya sea “service mysqld status” o “/etc/init.d/mysqld status” como root.

    – Chris

    17 de septiembre de 2010 a las 15:29

  • @Chris, se está ejecutando en un servidor de Windows, 2008.

    – 109221793

    17 de septiembre de 2010 a las 15:31

avatar de usuario
Mchl

Si su servidor MySQL se ejecuta en la configuración predeterminada, no necesita especificar eso.

El puerto MySQL predeterminado es 3306.

[updated to show mysql_error() usage]

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

  • Probé la dirección IP por sí sola, y con: 3306 agregado al final, ninguno funcionó. ¿Hay alguna manera de saber si hay un puerto diferente? Yo no configuré este servidor.

    – 109221793

    17 de septiembre de 2010 a las 15:16


  • Lo mejor es que compruebe cuál es el error que está obteniendo 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

    17 de septiembre de 2010 a las 15:59

  • El error es: No se puede conectar al servidor MySQL en ‘xxx.xx.xx.xx’ (10060)

    – 109221793

    18 de septiembre de 2010 a las 9:49

  • No importa. Agregué una regla en la configuración del firewall para el número de puerto. Pensé que esto se había hecho de antemano. Gracias de cualquier manera

    – 109221793

    18 de septiembre de 2010 a las 10:08

Para windows, si quieres saber el número de puerto de su host local en el que Mysql se está ejecutando, puede usar esta consulta en el cliente de línea de comandos 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)

Le dará el número de puerto en el que se ejecuta MySQL.

  • Funciona en Linux también.

    – Heitor

    9 de noviembre de 2019 a las 19:46

mira esto amigo

<?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 desea tener su puerto como una variable, puede escribir php de esta manera:

$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);

Si especifica ‘localhost’, las bibliotecas del cliente usan por defecto el socket 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 usando una herramienta diferente, intente emitir el comando “mostrar variables como ‘%socket%'”

Si desea utilizar un puerto de red (que es un poco más lento), intente especificar 127.0.0.1 o una interfaz física asociada con la máquina.

avatar de usuario
Ravi Kumar

el puerto predeterminado de mysql es 3306

el bote predeterminado del servidor sql es 1433

avatar de usuario
Dibujó

Esta es una visualización solo de PDO, ya que el mysql_* la biblioteca 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, después de todo, esta pregunta OP parecía no ser sobre números de puerto. Si está utilizando el puerto predeterminado de 3306 siempre, entonces considere eliminarlo del uri, es decir, elimine el port=$port; parte.

Si cambia de puerto con frecuencia, considere el uso de puerto anterior para una mayor facilidad de mantenimiento al realizar cambios en el $port variable.

Algunos errores probables 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 siguiente error, al menos nos estamos acercando, después de cambiando 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, ahora estamos muy cerca, pero no del todo:

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

Del Manual en Conexiones PDO:

¿Ha sido útil esta solución?