サーバーのmysqlにデータベースを作成しました。 phpを使用してWebサイト経由でこれに接続したい。これは私の接続ファイルの内容です:
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die('Error connecting to mysql');
$dbname = 'epub';
mysql_select_db($dbname);
ユーザー名/パスワードとサーバーのIPアドレスを知っています。私がちょうど疑問に思っているのは、どのポートを使用するかをどのように知るのですか?
MySQLサーバーがデフォルト設定で実行されている場合、それを指定する必要はありません。
デフォルトのMySQLポートは3306です。
[mysql_error()の使用法を表示するように更新]
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die('Error connecting to mysql: '.mysql_error());
Windowsの場合、Mysqlが実行されているローカルホストのポート番号を知りたい場合は、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)
MySQLが実行されているポート番号が表示されます。
この男をチェック
<?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);
?>
ポートを変数として使用する場合は、次のようにphpを記述できます。
$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);
mysqlのデフォルトポートは3306です
sQLサーバーのデフォルトポットは1433です
mysql_*
ライブラリは廃止されているため、これはPDOのみの視覚化です。
<?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();
}
?>
このOP質問は、結局ポート番号に関するものではないように思われることに注意してください。常にデフォルトのポート3306
を使用している場合、uriから削除すること、つまりport=$port;
部分を削除することを検討してください。
ポートを頻繁に変更する場合は、$port
変数に変更を加えて保守性を高めるために、上記のポートの使用を検討してください。
上記から返される可能性のあるエラー:
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.
以下のエラーでは、接続情報をchangeした後、少なくとも近づいています:
PDO Exception: SQLSTATE[HY000] [1045] Access denied for user 'GuySmiley'@'localhost' (using password: YES)
さらに変更した後、私たちは本当に近づいていますが、完全ではありません:
PDO Exception: SQLSTATE[HY000] [1049] Unknown database 'mustard'
PDO接続 のマニュアルから:
「localhost」を指定すると、クライアントライブラリはデフォルトでUnixシステム上のファイルシステムシステムソケットを使用します。php.iniのmysql_default_socket値(設定されている場合)、my.cnf値を試します。
別のツールを使用して接続する場合は、「 '%socket%'などの変数を表示する」コマンドを発行してみてください
ネットワークポート(少し遅い)を使用する場合は、127.0.0.1またはマシンに関連付けられている物理インターフェイスを指定してみてください。
試してみる
$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';
}
?>