php - expresiones - número de puerto del servidor mysql
variables php (8)
el puerto predeterminado de mysql es 3306
valor por defecto del servidor sql es 1433
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áles son los nombres de usuario / contraseñas, y sé la dirección IP del servidor. Lo que me pregunto es ¿cómo sé qué puerto usar?
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 números de puerto después de todo. Si está utilizando el puerto predeterminado de 3306
siempre, entonces considere eliminarlo de la uri, es decir, eliminar el port=$port;
parte.
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
.
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 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, ahora estamos muy cerca, pero no del todo:
PDO Exception: SQLSTATE[HY000] [1049] Unknown database ''mustard''
Del Manual sobre Conexiones PDO :
Para Windows, si desea saber el número de puerto de su host local en el que se está ejecutando MySQL , puede usar esta consulta en el cliente de línea de comandos de 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.
Si especifica ''localhost'', las libs del cliente utilizarán el socket del sistema del sistema de archivos en un sistema Unix de manera predeterminada, 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.
Si su servidor MySQL se ejecuta en la configuración predeterminada, no necesita especificar eso.
El puerto predeterminado de MySQL es 3306.
[actualizado para mostrar el uso de mysql_error ()]
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die(''Error connecting to mysql: ''.mysql_error());
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 quieres tener tu puerto como variable, puedes escribir php así:
$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);
<?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'';
}
?>