Setelah memutakhirkan ke 15,04, saya bersenang-senang mengenal systemd. Saya pikir saya memiliki semuanya berfungsi kecuali saya tidak dapat menghentikan mysql.service; perintah systemctl hanya hang dan mysql terus berjalan. Adakah orang lain yang mengalami ini atau mungkin tahu apa yang terjadi?
17
mysql.service
skrip asli mereka atau apakah Anda membuat skrip sendiri?Jawaban:
Saya memiliki masalah yang sama (upgrade ke 15,04, menggunakan file dan konfigurasi resmi).
Saya harus membuat perubahan berikut untuk dapat menghentikan
mysql
daemon secara manual dengansytemctl
dan secara otomatis pada sistem reboot / shutdown:Jadikan
/etc/mysql/debian.cnf
mudah dibaca olehmysql
penggunaBerikan
mysql.service
file yang sedikit dimodifikasi :Berikan perintah berhenti eksplisit dengan membuka file yang disalin dalam editor:
dan menambahkan baris berikut di bawah
[Service]
bagian ini:Di Nano, gunakan Ctrl + O untuk menyimpan (cara Linux!), Ctrl + X untuk keluar.
Jadikan file layanan baru diketahui oleh sistem:
sumber
Saya memiliki masalah yang sama dengan Ubuntu 15.10 Desktop dan saya menemukan cara untuk memperbaikinya:
parameter log_error di /etc/mysql/mysql.conf.d/mysqld.cnf dikomentari. Setelah menghapus komentar parameter, systemd melakukan mysqld shutdown tanpa masalah.
sumber
--log-syslog
opsi ke jurnal. Mungkin alasannya: sistem file root adalah btrfs.Masalah Anda adalah thread_pool_size. Jika jauh lebih tinggi dari jumlah core / utas, Anda tidak akan dapat mematikan dengan benar kecuali dengan menggunakan perintah shutdown mysqladmin.
Misalnya: Anda memiliki 2 core CPU dengan 4 utas. Jika Anda mengaturnya 1-4 - itu akan berfungsi dengan baik. Jika Anda mengaturnya menjadi 16, seperti yang disarankan di banyak blog 'kinerja tinggi', itu akan dicampakkan.
sumber
Saya memiliki masalah yang sama dengan mysql / mariadb gagal berhenti ketika diinstruksikan oleh systemd , baik pada shutdown atau dipanggil secara manual dengan
sudo service mysql stop
.Dalam kasus saya, saya dual-boot Ubuntu / Windows dalam mode UEFI, dan OS ini menafsirkan waktu perangkat keras yang berbeda, sehingga kedua OS disinkronkan dengan server waktu Internet ketika mereka mulai.
MySQL (dan Mariadb) gagal berhenti jika waktu perangkat keras berubah saat sedang berjalan.
Anda harus menunda memulai MySQL sampai setelah timesync. Idealnya ini akan dilakukan dengan memasukkan ketergantungan temporal pada mysql dengan
After: time-sync
tetapi itu tidak berhasil untuk saya.Solusi yang bekerja untuk saya (Anda dapat mengganti mysql dengan mariadb untuk efek yang sama):
Nonaktifkan mysql dengan
sudo systemctl disabled mysql.service
Buat skrip (pastikan skrip ini dapat dieksekusi) yang akan memulai mysql setelah beberapa penundaan
/usr/bin/delay_mysql
dengan konten:Buat layanan systemd untuk menjalankan skrip baru Anda
/etc/systemd/system/delay_mysql.service
dengan konten:Daftarkan layanan baru Anda dengan
sudo systemctl enable delay_mysql.service
Ini akan menyebabkan skrip Anda berjalan pada level multi-pengguna, yang pada Ubuntu 3,4,5.
sumber
Tepat saat menyalin
mysql.service
Anda harus melakukanchmod
setelah.sumber
dalam kasus saya itu adalah ketidakcocokan kata sandi untuk pengguna pemeliharaan
debian-sys-maint
antara satu masuk/etc/mysql/debian.cnf
dan satu di database MySQL.Pengguna ini digunakan untuk mematikan MySQL dan fungsi lainnya. Setelah pembaruan MySQL, mungkin terjadi bahwa ada ketidaksesuaian antara file dan database. Ini juga bisa terjadi jika Anda memindahkan database Anda dari satu MySQL ke yang lain. Jika Anda akan mengimpor semua basis data dan pengguna dari MySQL lain di mesin yang berbeda, Anda perlu menyinkronkan kembali
debian-sys-maint
kata sandi pengguna pemeliharaan ( ) Anda.Yang perlu Anda lakukan: periksa kata sandi Anda saat ini di file ubuntu / debian:
Anda dapat melihat kata sandi yang digunakan sistem di sini:
password = n4aSHUP04s1J32X5
Langkah selanjutnya adalah memperbarui MySQL ke kata sandi yang sama: Masuk ke MySQL:
Ketikkan kata sandi Anda untuk mengakses MySQL
Setelah itu tidak ada lagi masalah dengan shutdown, tidak ada 10 menit menunggu, tidak ada masalah dengan menginstal aplikasi yang menggunakan akun pemeliharaan ini seperti phpmyadmin.
UPDATE: Jadi sayangnya ini tidak menyelesaikan masalah. Itu membuatnya agak acak - kadang-kadang saya bisa menghentikan layanan tanpa masalah lain kali akan membeku saat berhenti layanan.
sumber