ホームページ  >  記事  >  バックエンド開発  >  PHP SSH MySQL 接続での「mysqli_connect(): パラメーター 6 は文字列であることが予想され、リソースが指定されました」というエラーを解決するにはどうすればよいですか?

PHP SSH MySQL 接続での「mysqli_connect(): パラメーター 6 は文字列であることが予想され、リソースが指定されました」というエラーを解決するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-21 22:27:311060ブラウズ

How to Resolve

PHP で SSH 経由で MySQL サーバーに接続

SSH および PHP の ssh2 を使用してリモート MySQL データベースに接続しようとしましたライブラリを使用すると、提供されたコードでエラーが発生します。「mysqli_connect() はパラメータ 6 が文字列であることを期待しており、リソースが指定されています。」この問題は、文字列であると予想されるパラメータ (トンネル リソース) が代わりにリソースとして提供された場合に発生します。

SSH トンネル ソリューション

この課題を克服するには、安全な SSH トンネルを確立して、MySQL データベース サーバーに接続できます。このトンネルは、クライアントとデータベース間の暗号化チャネルとして機能し、安全な SSH 接続を通じてすべての通信をルーティングします。

(A) GUI ツール
  • Visual Studio Code: 拡張機能を使用して SSH トンネリングをサポートします。
  • TablePlus: 組み込みの SSH トンネリング機能を提供します。
  • PuTTY: SSH のローカル ポート転送を設定できます。

(B) コマンド ライン

ステップ 1: 確立「-L」スイッチを使用した SSH トンネル。

ssh -fNg -L 3307:10.3.1.55:3306 [email protected]

この例では、ローカル ポート 3307 のトラフィックが 10.3.1.55:3306 のリモート データベース サーバーに転送されます。

ステップ 2: ローカル ポートを使用してデータベースに接続します。

mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase

これで、PHP アプリケーションは SSH 転送接続を使用してデータベースに接続できるようになります。

<code class="php"><?php
$smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase");
mysql_select_db("db", $smysql);
?></code>

SSH トンネルを設定することにより、リモート MySQL データベースへの接続は非常に安全になります。データは暗号化された SSH チャネルを通じて交換され、不正アクセスを防ぎます。

以上がPHP SSH MySQL 接続での「mysqli_connect(): パラメーター 6 は文字列であることが予想され、リソースが指定されました」というエラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。