Ralat sambungan pangkalan data: Jenis ralat 2002 - Kebenaran ditolak
P粉757640504
P粉757640504 2023-08-24 19:54:00
0
1
577
<p>Saya cuba menyambung ke pangkalan data menggunakan skrip berikut (cxn-test.php)</p> <pre class="brush:php;toolbar:false;"><?php $host = '155.30.136.20';//IP Maya $pengguna = 'pengguna_abc'; $lulus = 'xxxxxxxxx'; $dbname = 'selamat datang'; $link = mysqli_connect($host, $user, $pass,$dbname); jika (!$link) { echo "Ralat: Tidak dapat menyambung ke MySQL." echo "Nombor ralat nyahpepijat:" mysqli_connect_errno() . echo "Mesej ralat nyahpepijat:" mysqli_connect_error() . keluar; }lain { gema "kejayaan" .PHP_EOL; }</pre> <p>Apabila saya mencubanya pada terminal</p> <blockquote> <p>php cxn-test.php //Success</p> </blockquote> <p>Tetapi apabila saya mencubanya pada localhost, saya mendapat ralat berikut: </p> <blockquote> <p>curl -s http://localhost/cxn-test.php</p> </blockquote> <p><kod>Ralat: Tidak dapat menyambung ke MySQL. Nombor ralat nyahpepijat: 2002 Mesej ralat nyahpepijat: Kebenaran ditolak</code></p> <p>Ini adalah isu pelik, ia tidak berfungsi pada localhost tetapi berfungsi dengan baik pada baris arahan. </p>
P粉757640504
P粉757640504

membalas semua(1)
P粉041881924

Saya menghadapi masalah yang sama selepas mendapat kotak CentOS 7 baharu yang menjalankan SELinux. Saya boleh menyambung ke pelayan pangkalan data MySQL jauh melalui baris arahan, tetapi Drupal (dan skrip PHP ujian) tidak dapat menyambung.

Masalah itu akhirnya disebabkan oleh dasar keselamatan SELinux.

Secara lalai, dasar httpd_can_network_connect_db dilumpuhkan (bermaksud pelayan web anda tidak boleh menghubungi pangkalan data jauh).

Semak dengan arahan berikut:

getsebool -a | grep httpd

Jika httpd_can_network_connect_db dimatikan, sila dayakannya dengan arahan berikut:

setsebool -P httpd_can_network_connect_db 1

(Bendera -P membuat perubahan kekal, jadi tetapan kekal berkuat kuasa sepanjang but semula.)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan