Ich habe gerade eine Datenbank für MySQL auf meinem Server erstellt. Ich möchte mich über meine Website mit PHP verbinden. Dies ist der Inhalt meiner Verbindungsdatei:
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die('Error connecting to mysql');
$dbname = 'epub';
mysql_select_db($dbname);
Ich weiß, wie der Benutzername/das Passwort lautet, und ich kenne die IP-Adresse des Servers. Ich frage mich nur, woher weiß ich, welchen Port ich verwenden soll?
Wenn Ihr MySQL-Server mit Standardeinstellungen ausgeführt wird, müssen Sie dies nicht angeben.
Der Standard-MySQL-Port ist 3306.
[aktualisiert, um die Verwendung von mysql_error () anzuzeigen]
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die('Error connecting to mysql: '.mysql_error());
Wenn Sie die Portnummer Ihres lokalen Hosts kennen möchten, auf dem Mysql ausgeführt wird, können Sie diese Abfrage auf dem MySQL-Befehlszeilenclient verwenden.
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)
Sie erhalten die Portnummer, unter der MySQL läuft.
schau dir diesen Kerl an
<?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);
?>
wenn Sie Ihren Port als Variable haben möchten, können Sie PHP folgendermaßen schreiben:
$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);
der Standardport von MySQL ist 3306
der Standard-Pot von SQL Server ist 1433
Dies ist eine reine PDO-Visualisierung, da die Bibliothek mysql_*
veraltet ist.
<?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();
}
?>
Beachten Sie, dass es sich bei dieser OP-Frage nicht um Portnummern handelt. Wenn Sie immer den Standardport 3306
verwenden, sollten Sie ihn aus dem URI entfernen, d. H. Den port=$port;
-Teil entfernen.
Wenn Sie häufig Anschlüsse ändern, sollten Sie die oben angegebene Anschlussnutzung in Betracht ziehen, um die Wartbarkeit zu verbessern und Änderungen an der Variablen $port
vorzunehmen.
Einige wahrscheinliche Fehler wurden von oben zurückgegeben:
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.
Im folgenden Fehler kommen wir uns nach Ändern unserer Verbindungsinformationen zumindest näher:
PDO Exception: SQLSTATE[HY000] [1045] Access denied for user 'GuySmiley'@'localhost' (using password: YES)
Nach weiteren Änderungen sind wir jetzt sehr nahe, aber nicht ganz:
PDO Exception: SQLSTATE[HY000] [1049] Unknown database 'mustard'
Aus dem Handbuch über PDO-Verbindungen :
Wenn Sie 'localhost' angeben, verwendet der Client standardmäßig das Dateisystem-System-Socket auf einem Unix-System. Dabei wird der Wert für mysql_default_socket aus der php.ini (falls festgelegt) und dann der Wert für my.cnf verwendet.
Wenn Sie eine Verbindung mit einem anderen Tool herstellen, geben Sie den Befehl "show variables wie '% socket%'" aus.
Wenn Sie einen Netzwerkanschluss verwenden möchten (der etwas langsamer ist), geben Sie 127.0.0.1 oder eine physische Schnittstelle an, die der Maschine zugeordnet ist.
versuchen
$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';
}
?>