Jadi ini adalah masalah yang sangat rumit.
Karena dari apa yang Anda uraikan (sangat detail),masih banyak kemungkinan penyebab masalah ini.
PERTANYAAN: Jadi, inilah beberapa pertanyaan yang dirangkum untuk Anda (dari pengalaman saya):
- Apakah
MySQL not running
terjadi saat startup pertama Anda (xampp start / xampp startmysql)? - Setelah menginstal xampp di Linux, sudahkah Anda menyesuaikan konfigurasi MySQL (default etc/my.cnf)?
- JIKA DISESUAIKAN Apakah Anda menyesuaikan direktori database Anda ke lokasi yang berbeda (default /opt/lampp/var/mysql)?
- JIKA TIDAK DISESUAIKAN Seperti yang Anda sebutkan, Anda memiliki akses baris perintah mysql, apakah Anda sudah mencoba SQL database Anda, atau jika database bahkan tidak dapat diakses (yang berarti server mysql, bernama mysqld, tidak memulai dengan benar)?
- Sudahkah Anda secara pribadi menginisialisasi/menginstal database mysql (bin/mysql_install_db default)? Oke, pertanyaan di atas akan memberikan ide pemecahan masalah dasar.
SOLUSI:
1. masalah log kesalahan
Jadi, masalah ini seharusnya menjadi masalah yang paling sederhana, dan ini dapat membantu kami mengidentifikasi penyebab kesalahan dengan lebih baik.
Periksa
a) dalam konfigurasi MySQL (my.cnf) apa pengguna Anda yang sedang berjalan? ini harus menjadi parameter di bawah [mysqld] user=... (default mysql), kami menganggap konfigurasi kami diatur ke mysql
b) apakah Anda memiliki akun untuk menjalankan pengguna coba perintah terminal id -u mysql
, jika mengembalikan nomor id, maka akun itu ada, jika tidak, ia akan memberi tahu Anda no such user
. Anda harus memiliki pengguna ini untuk menjalankan server mysql dan menulis log kesalahan (dengan melihat bagian kedua dari catatan terminal Anda, akun Anda seharusnya ada)
c) periksa lokasi log kesalahan konfigurasi MySQL Anda (my.cnf), itu harus di bawah [mysqld] sebagai parameter log-error=... jika ini tidak tertulis, tambahkan ke dalamnya (harus di bawah [mysqld]).
d) periksa setiap direktori dari path lengkap log Anda yang (misalnya /var/log/mysql/error.log)
- /var seharusnya
read
danexecute
otoritas untuk pengguna mysql (yang setidaknya ******r-x) lulus buat file (eksekusi) otoritas - /var/log seharusnya
read
danexecute
otoritas untuk pengguna mysql (yang setidaknya ******r-x) lulus buat file (eksekusi) otoritas - /var/log/mysql seharusnya
read
,write
danexecute
otoritas untuk pengguna mysql (yaitu ******rwx) membuat dan menulis otoritas file
Agar file error.log anda bisa dibuat disini, jika masih tidak bisa, coba buat manual dengan owner sebagai mysql, group sebagai mysql dan authority 660.
2. Status menjalankan server MySQL
ada beberapa pendekatan untuk memeriksa ini
a) gunakan mysql.server (bin/mysql.server default) untuk melakukan mysql.server status
memerintah. Jika server MySQL Anda sedang berjalan, itu akan menunjukkan SUCCESS! MariaDB sedang berjalan.
b) gunakan top
perintah untuk memeriksa apakah layanan sedang berjalan, atau gunakan top | grep "mysqld"
. mysqld
dan mysqld_safe
harus di dalamnya.
c) login ke baris perintah mysql seperti yang Anda lakukan di terminal record 4 (ini bagian yang berfungsi) dan lakukan perintah SHOW DATABASES;
ini juga harus bekerja.
3. Lokasi database yang disesuaikan menyebabkan Xampp mysql tidak menjalankan status Ini adalah masalah yang jauh lebih dalam, karena saya telah memastikan bahwa server MySQL berjalan dengan benar.
Saya melakukannya
[[email protected] ~]# /opt/lampp/xampp status
Version: XAMPP for Linux 7.4.1
Apache is running.
MySQL is not running.
ProFTPD is running.
[[email protected] ~]# /opt/lampp/bin/mysql.server status
SUCCESS! MariaDB running (xxxx)
Jadi ini menunjukkan bahwa xampp mengambil status layanan secara tidak benar (seperti posting lain Database MySQL dimulai di Terminal Tapi tidak di XAMPP )
Saya dapat melacak secara detail cara kerja xampp, tetapi dalam /opt/lampp/xampp
file skrip, saya menemukan /opt/lampp/share/xampp/status
dan /opt/lampp/share/statusraw
Lebih jauh ke dalamnya (keduanya /opt/lampp/share/xampp/status
dan /opt/lampp/share/statusraw
berkas),
/opt/lampp/var/mysql/` /bin/hostname`.pid mysqld
Karena database saya dikustomisasi ke direktori lokal, ini berarti file pid tidak akan berada di /opt/lampp/var/mysql
, dan status ini akan selalu salah.
Jadi mengubah ini menjadi lokasi pid database saya sendiri memecahkan masalah.