Tidak dapat terhubung ke server mysql pada 60

Kesalahan server MySQL telah hilang, yang berarti bahwa server MySQL (mysqld) kehabisan waktu dan menutup koneksi. Secara default, MySQL akan menutup koneksi setelah delapan jam (28800 detik) jika tidak terjadi apa-apa. Namun, dalam beberapa kasus, host web, DBA, atau pengembang aplikasi Anda mungkin telah menurunkan setelan waktu tunggu ini, seperti yang dibahas di bawah

Server MySQL telah hilang, bisa menjadi kesalahan yang membuat frustrasi untuk dipecahkan. Ini sebagian karena, untuk mengatasi kesalahan ini, terkadang solusinya melibatkan banyak lapisan, aplikasi, atau perubahan konfigurasi layanan. Artikel ini mencakup solusi yang pernah saya lihat untuk kesalahan umum server MySQL ini. Jika Anda menemukan solusi yang tidak tercantum atau ditautkan di halaman ini, kirimkan saya catatan atau tinggalkan komentar

Tidak dapat terhubung ke server mysql pada 60

 

Server MySQL telah menghilangkan contoh log kesalahan

Perlu diingat bahwa kesalahan ini dapat dicatat dalam beberapa cara, seperti yang tercantum di bawah ini. Selain itu, terkadang, kesalahan tersebut hanya merupakan indikasi dari masalah mendasar yang lebih dalam. Berarti kesalahan bisa disebabkan oleh masalah atau bug pada aplikasi penghubung atau layanan jarak jauh Anda. Dalam hal ini, Anda perlu memeriksa SEMUA log kesalahan terkait dengan stempel waktu yang sama untuk menentukan apakah ada masalah lain yang dapat disalahkan. Solusi Pemantauan Kinerja Aplikasi dan alat PHP Stack trace dapat membantu. Dengan mengingat hal ini, berikut adalah contoh log kesalahan dari kesalahan server MySQL telah hilang

General error: 2006 MySQL server has gone away
Error Code: 2013. Lost connection to MySQL server during query
Warning: Error while sending QUERY packet
PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

 

Disponsori. Datadog – Lihat metrik kueri dan jelaskan rencana dari semua database Anda di satu tempat

Tidak dapat terhubung ke server mysql pada 60

Datadog adalah platform pemantauan, analitik, dan keamanan terpadu yang menawarkan pemantauan end-to-end untuk semua database Anda, termasuk MySQL, PostgreSQL, dan lainnya. Dengan cepat menunjukkan kueri yang mahal dan lambat, serta memecahkan masalah performa lebih cepat dengan metrik dan pola database utama di satu tempat. Telusuri, bandingkan, dan filter kueri Anda dengan mudah pada rencana eksekusi untuk mengidentifikasi area dengan cepat untuk peningkatan kinerja dan biaya. Manfaatkan integrasi kami untuk MySQL, PostgreSQL, SQL Server, dan lainnya untuk memvisualisasikan metrik kinerja sistem utama pada dasbor siap pakai bersama metrik kueri dan tingkat host. Datadog Database Monitoring terintegrasi erat dengan platform Datadog lainnya;

Biaya. Paket gratis, atau mulai dari $70

 

MySQL wait_timeout

Alasan kesalahan server MySQL telah hilang sering kali karena waktu tunggu MySQL telah terlampaui. MySQL wait_timeout adalah jumlah detik server menunggu aktivitas pada koneksi non-interaktif sebelum menutupnya. Anda harus memastikan wait_timeout tidak disetel terlalu rendah. Default untuk MySQL adalah 28800 detik. Seringkali, itu diturunkan secara sewenang-wenang. Artinya, semakin rendah Anda dapat menyetel wait_timeout tanpa memengaruhi koneksi database, bisa menjadi pertanda baik efisiensi database MySQL. Juga, periksa variabelnya. , dan. Sesuaikan atau tambahkan baris berikut di my. cnf untuk memenuhi kebutuhan Anda

wait_timeout=90
net_read_timeout=90
net_write_timeout=90
interactive_timeout=300
connect_timeout=90
_

 

Batas waktu koneksi MySQL dalam konfigurasi PHP

Coba lihat di php kamu. ini file konfigurasi. Anda akan menemukan opsi konfigurasi MySQL. Pastikan file mysql. pengaturan connect_timeout tidak disetel lebih rendah dari wait_timeout MySQL, yang dibahas di atas. Opsi PHP mysql. connect_timeout tidak hanya digunakan untuk waktu tunggu koneksi. Itu juga saat menunggu respon pertama dari server MySQL. Coba tingkatkan mysql. connect_timeout untuk mencocokkan atau melampaui MySQL wait_timeout Anda dan pastikan mysql. allow_persistent aktif (default = diaktifkan)

mysql.connect_timeout=90
mysql.allow_persistent=1

PENTING. Baca terlebih dahulu tentang PHP Persistent Database Connections untuk memahami manfaat dan peringatannya

Juga, sesuaikan default_socket_timeout PHP. Misalnya, skrip PHP dapat menjalankan kueri yang lambat. Membuat menunggu yang menggunakan default_socket_timeout. Akhirnya, itu berhenti dengan kesalahan "server MySQL telah hilang". Sebelum Anda mengirim surat kebencian,. Berikut kutipannya

“PHP, secara default, menyetel waktu tunggu baca selama 60 detik untuk streaming. Ini diatur melalui php. ini, default_socket_timeout. Default ini berlaku untuk semua streaming yang tidak menetapkan nilai waktu tunggu lainnya. mysqlnd tidak menetapkan nilai lain dan oleh karena itu koneksi kueri yang berjalan lama dapat diputuskan setelah default_socket_timeout detik yang mengakibatkan pesan kesalahan 2006 – Server MySQL telah hilang . ”

default_socket_timeout=90
_

Agar lengkap, sesuaikan juga max_execution_time dan max_input_time yang masih ada di php. ini, jika perlu. Jika waktu eksekusi PHP lebih lama dari max_execution_time, maka server MySQL mungkin terputus

max_execution_time = 90
max_input_time = 90

 

MySQL max_allowed_packet

max_allowed_packet adalah ukuran maksimum dari satu paket. Ukuran default 4MB membantu server MySQL menangkap paket besar (mungkin salah). Pada MySQL 8, standarnya telah ditingkatkan menjadi 16MB. Jika mysqld menerima paket yang terlalu besar, diasumsikan ada sesuatu yang salah dan menutup koneksi. Untuk memperbaikinya, Anda harus meningkatkan max_allowed_packet di my. cnf, lalu restart MySQL. Maksimum untuk setelan ini adalah 1 GB. Sebagai contoh

max_allowed_packet = 512M
_

 

MySQL innodb_log_file_size

Anda mungkin perlu meningkatkan variabel innodb_log_file_size MySQL di my. konfigurasi cnf. Ukuran innodb_log_file_size MySQL harus 25% dari ukuran innodb_buffer_pool_size (jika memungkinkan, tidak kurang dari 20%). Ingatlah bahwa semakin besar nilai ini, semakin lama waktu yang dibutuhkan untuk pulih dari kerusakan database. (Sumber. Penasihat Phpmyadmin)

Ini berarti misalnya. jika ukuran kumpulan buffer Anda disetel ke innodb_buffer_pool_size=16G dan  setelan Anda tetap disetel ke default yang disarankan sebanyak 2 file (innodb_log_files_in_group=2), maka Anda harus disetel ke 2G. Tindakan ini akan membuat dua (2) file log masing-masing berukuran 2 GB, yang setara dengan 25% dari innodb_buffer_pool_size=16G

PERINGATAN. Anda harus menghentikan server MySQL untuk mengubah innodb_log_file_size atau innodb_log_files_in_group. Jika tidak, Anda berisiko malapetaka. (Membaca. Instruksi MySQL Log Redo. )

 

Penyebab lain dari server MySQL telah hilang

Koneksi jarak jauh MySQL

Ingat sebelumnya saya menyebutkan bahwa kesalahan, terkadang, hanya merupakan indikasi dari masalah mendasar yang lebih dalam. Misalnya, koneksi jarak jauh MySQL ke. Menggunakan plugin pemrosesan pembayaran pihak ketiga untuk osCommerce, Magento, dll

Kumpulan karakter dan susunan basis data MySQL

Mengubah charset database default ke latin1 dan collation default ke latin1_general_ci sepertinya sudah

Melebihi pengaturan max_connections MySQL

Max_connections menetapkan jumlah maksimum koneksi klien simultan yang diizinkan. Hati-hati dengan pengaturan ini. Habisnya memori dan sumber daya lainnya dapat terjadi jika disetel terlalu besar dan overhead penjadwalan juga meningkat. Sebagai panduan, atur max_connections kira-kira dua kali lipat jumlah koneksi klien simultan maksimum sebelumnya. e. g. , jika setelah satu bulan waktu aktif, koneksi klien simultan maksimum adalah 114, maka setel ke max_connections=250. Sebelum Anda tergila-gila dengan pengaturan ini, silakan baca. Bagaimana MySQL Menangani Koneksi Klien

Masih belum terselesaikan?

Oracle telah menyusun halaman swadaya yang bagus untuk server MySQL telah menghilangkan kesalahan. Di halaman itu, mereka juga menyarankan agar Anda memastikan MySQL tidak berhenti/memulai ulang selama kueri. Kutipan

Mengapa MySQL tidak terhubung ke server?

Berikut adalah beberapa alasan kesalahan Tidak dapat terhubung ke server MySQL lokal mungkin terjadi. mysqld tidak berjalan di host lokal . Periksa daftar proses sistem operasi Anda untuk memastikan proses mysqld ada. Anda menjalankan server MySQL di Windows dengan banyak koneksi TCP/IP.

Bagaimana cara memeriksa apakah MySQL dapat dijangkau di port 3306?

Cara yang benar adalah menggunakan. sudo lsof -i. 3306 .

Tidak dapat terhubung ke server MySQL 10060?

Kesalahan 10060 dikembalikan oleh klien MySQL saat koneksi tidak dapat dibuat dengan layanan pada sistem yang Anda sambungkan. Ini biasanya disebabkan oleh blok firewall atau masalah jaringan yang mencegah koneksi .

Bagaimana cara memperbaiki kesalahan koneksi MySQL?

Beberapa solusi permanen adalah. .
Tentukan apa yang salah dengan server DNS Anda dan perbaiki
Tentukan alamat IP daripada nama host di tabel hibah MySQL
Masukkan entri untuk nama mesin klien di /etc/hosts di Unix atau \windows\hosts di Windows
Mulai mysqld dengan variabel sistem skip_name_resolve diaktifkan