Mewujudkan sambungan ke pangkalan data MySQL yang dihoskan pada mesin Linux jauh melalui SSH menggunakan fungsi PHP boleh mencabar. Ralat "mysqli_connect() menjangkakan parameter 6 sebagai rentetan, sumber diberikan" mungkin berlaku apabila menggunakan kod yang disediakan.
Kod cuba menggunakan fungsi mysqli_connect() untuk sambung ke pangkalan data melalui terowong SSH. Walau bagaimanapun, fungsi mysqli_connect() menjangkakan rentetan sebagai parameter keenam (menunjukkan terowong), manakala fungsi ssh2_tunnel() mengembalikan sumber.
Untuk menyelesaikan isu ini, sediakan terowong SSH ke pelayan pangkalan data MySQL anda. Satu kaedah yang berkesan ialah menggunakan proksi Jumpbox untuk peningkatan keselamatan. Pendekatan ini melibatkan mencipta terowong pemajuan port tempatan menggunakan klien SSH, dengan berkesan mewujudkan saluran selamat antara mesin tempatan anda dan pelayan pangkalan data.
Menggunakan Alat Baris Perintah (Penyediaan Terowong SSH):
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Menyambung ke Pangkalan Data:
<code class="php">$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");</code>
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Parameter mysqli_connect() Apabila Menyambung ke MySQL melalui SSH dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!