Node.js MySQL: Menyelesaikan Ralat "ECONNREFUSED" Semasa Menyambung
Apabila cuba menyambung ke pelayan MySQL melalui Node.js, menghadapi ralat "ECONNREFUSED" boleh membingungkan, terutamanya apabila pelayan PHP/Apache pada mesin yang sama beroperasi tanpa sebarang isu.
Mari kita siasat punca ralat ini dan sediakan penyelesaian yang telah berjaya.
Cabaran
Dalam kod yang disediakan coretan, hos MySQL ditakrifkan sebagai 'localhost', manakala pelayan MySQL pada mesin mendengar pada soket Unix '/var/run/mysqld/mysqld.sock' dan bukannya port TCP standard. Ketidakpadanan ini mengakibatkan ralat "ECONNREFUSED" apabila aplikasi Node.js cuba menyambung menggunakan TCP.
Penyelesaian
Untuk menyelesaikan isu ini, kami perlu mengubah suai pilihan sambungan untuk menentukan laluan soket Unix dan bukannya port TCP. Ini boleh dicapai dengan menambah baris berikut pada pilihan sambungan:
port: '/var/run/mysqld/mysqld.sock'
Kod Kemas Kini
var mysql_link = { host: 'localhost', port: '/var/run/mysqld/mysqld.sock', // Modified to specify Unix socket path. database: 'nodetest', user: 'root', password: 'xxx' };
Kesimpulan
Dengan menyatakan pilihan sambungan yang betul, kami boleh memastikan bahawa aplikasi Node.js dapat mewujudkan sambungan yang berjaya ke pelayan MySQL dan meneruskan operasinya dengan lancar. Adalah penting untuk mengesahkan konfigurasi pelayan MySQL dan menggunakan parameter sambungan yang sesuai untuk mengelak daripada menghadapi ralat sedemikian pada masa hadapan.
Atas ialah kandungan terperinci Node.js MySQL ECONNREFUSED Ralat: Bagaimana untuk Menyambung Menggunakan Soket Unix?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!