Cara Menyambung ke Pelayan MySQL Melalui SSH dalam PHP: Penyelesaian Masalah dan Amalan Terbaik

Mary-Kate Olsen
Lepaskan: 2024-10-21 22:30:30
asal
725 orang telah melayarinya

How to Connect to a MySQL Server Over SSH in PHP: Troubleshooting and Best Practices

Sambung ke Pelayan MySQL Melalui SSH dalam PHP

Gambaran Keseluruhan

Menyambung ke pelayan MySQL jauh melalui SSH memerlukan mewujudkan terowong selamat antara setempat anda mesin dan pelayan pangkalan data MySQL. Panduan ini menggariskan langkah-langkah yang terlibat dalam menyediakan terowong SSH dan menyambung ke pangkalan data menggunakan PHP.

Resolusi Ralat

Ralat "mysqli_connect() menjangkakan parameter 6 sebagai rentetan, sumber diberikan" berlaku apabila parameter keenam mysqli_connect() bukan rentetan yang mewakili terowong MySQL. Untuk menyelesaikan isu ini, tukar parameter keenam menjadi output fungsi ssh2_tunnel, seperti yang ditunjukkan di bawah:

<code class="php">$connection = ssh2_connect('SERVER IP', 22);

ssh2_auth_password($connection, 'username', 'password');

$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);

$db = mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 
                         'dbname', 3307, stream_get_contents($tunnel))
    or die ('Fail: '.mysql_error());</code>
Salin selepas log masuk

Secure Port Forwarding

Penyelesaian yang disyorkan untuk menyambung ke pelayan MySQL melalui SSH adalah untuk mewujudkan terowong SSH. Berikut ialah dua pilihan untuk menyediakan terowong:

Alat GUI

Gunakan klien MySQL GUI seperti Visual Studio Code atau TablePlus yang menawarkan sokongan terowong SSH terbina dalam.

Arahan Line

Sediakan pemajuan port tempatan menggunakan arahan berikut:

<code class="bash">ssh -fNg -L 3307:10.3.1.55:3306 [email&#160;protected] </code>
Salin selepas log masuk

Setelah terowong ditubuhkan, sambung ke pelayan MySQL melalui port tempatan (3307) dalam skrip PHP anda:

<code class="php"><?php
      $smysql = mysql_connect( &quot;127.0.0.1:3307&quot;, &quot;dbuser&quot;, &quot;passphrase&quot; );
      mysql_select_db( &quot;db&quot;, $smysql ); 
?></code>
Salin selepas log masuk

Pertimbangan Keselamatan

Adalah penting untuk mewujudkan terowong melalui pelayan jumpbox untuk mengelakkan daripada mendedahkan pelayan pangkalan data anda terus ke Internet. Selain itu, pertimbangkan untuk menggunakan pengesahan kunci SSH dan bukannya pengesahan kata laluan untuk keselamatan yang dipertingkatkan.

Atas ialah kandungan terperinci Cara Menyambung ke Pelayan MySQL Melalui SSH dalam PHP: Penyelesaian Masalah dan Amalan Terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan