71

サーバーの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 アドレスを知っています。私が疑問に思っているのは、使用するポートをどのように知ることができるかということです。

4

9 に答える 9

84

MySQL サーバーがデフォルト設定で実行されている場合は、それを指定する必要はありません。

デフォルトの MySQL ポートは 3306 です。

[mysql_error() の使用法を表示するように更新]

$conn = mysql_connect($dbhost, $dbuser, $dbpass)
    or die('Error connecting to mysql: '.mysql_error());
于 2010-09-17T14:52:22.840 に答える
15

これをチェックしてください

<?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);
?>
于 2010-09-17T16:18:46.413 に答える
9

ポートを変数として使用する場合は、次のように 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);
于 2013-08-06T09:55:13.793 に答える
2

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の質問は、結局のところポート番号に関するものではないように見えることに注意してください。Always のデフォルト ポートを使用している場合は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.

以下のエラーでは、接続情報を変更した後、少なくとも近づいています。

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

さらなる変更を経て、今は本当に近づいていますが、完全ではありません。

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

PDO接続のマニュアルから:

于 2015-09-12T20:16:44.430 に答える
2

mysql のデフォルトポートは 3306 です

SQL サーバーのデフォルトのポットは 1433 です

于 2013-07-05T17:25:23.460 に答える
2

'localhost' を指定すると、クライアント ライブラリはデフォルトで Unix システムのファイル システム システム ソケットを使用します - php.ini (設定されている場合) から mysql_default_socket 値を試し、次に my.cnf 値を試します。

別のツールを使用して接続する場合は、コマンド「show variables like '%socket%'」を発行してみてください。

ネットワーク ポート (少し遅い) を使用する場合は、127.0.0.1 またはマシンに関連付けられた物理インターフェイスを指定してみてください。

于 2010-09-17T15:26:37.437 に答える
2

ポート番号 3306 は MySQL に使用され、Tomcat は 8080 ポートを使用します。サーバーまたはソフトウェアを実行するために、より多くのポート番号を使用して、インスタント コンパイルに使用できます。8080 は番号のデフォルトであるため、Eclipse IDE でポート エラーが発生するだけです。jvm と tomcat は常に 8080.3306 が MySQL のデフォルトのポート番号であることを好みます。

  <?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';
    }
    ?>
于 2017-12-15T14:49:26.950 に答える
1

試す

$conn = mysql_connect($host, $username, $password, $port);
于 2018-10-26T09:18:23.177 に答える