Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membetulkan Isu Parameter mysqli_connect() Apabila Menyambung ke MySQL melalui SSH dengan PHP?

Bagaimana untuk Membetulkan Isu Parameter mysqli_connect() Apabila Menyambung ke MySQL melalui SSH dengan PHP?

Barbara Streisand
Barbara Streisandasal
2024-10-21 22:30:02613semak imbas

How to Fix mysqli_connect() Parameter Issue When Connecting to MySQL over SSH with PHP?

Sambung ke Pelayan MySQL melalui SSH dalam PHP

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.

Memahami Isu

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.

Menyelesaikan Isu dengan SSH Tunnel

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.

Panduan Langkah demi Langkah

Menggunakan Alat Baris Perintah (Penyediaan Terowong SSH):

  1. Dari terminal setempat anda, laksanakan arahan SSH berikut:
ssh -fNg -L 3307:10.3.1.55:3306 [email protected] 
  • Ganti '3307 ' dengan nombor port tempatan pilihan anda.
  • Ganti '10.3.1.55:3306' dengan alamat IP dan port pelayan pangkalan data MySQL anda.
  • Ganti '[email protected]' dengan Jumpbox anda kelayakan log masuk.

Menyambung ke Pangkalan Data:

  1. Dalam skrip PHP anda, wujudkan sambungan pangkalan data menggunakan mysqli_connect():
<code class="php">$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");</code>
  • Gunakan nombor port tempatan (3307 dalam contoh ini) yang dinyatakan dalam persediaan terowong SSH.

Pertimbangan Tambahan:

  • Menggunakan klien MySQL GUI dengan sokongan terowong SSH (cth., Visual Studio Code) boleh memudahkan proses persediaan.
  • Pengesahan kunci peribadi boleh meningkatkan keselamatan. Gunakan suis '-i' dalam arahan SSH untuk menentukan laluan kunci peribadi anda.
  • Terowong trafik melalui Jumpbox/Bastion Host untuk mengurangkan kelemahan akses pangkalan data langsung.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn