Pemutakhiran saya secara keseluruhan berjalan dengan baik, tetapi saya masih memiliki masalah dengan server mysql yang tidak dapat diinstal, dan tidak ada yang saya coba untuk membuatnya berfungsi.
Ini adalah kesalahan yang saya lihat ketika mencoba menginstal / menginstal ulang:
Setting up mysql-server-5.7 (5.7.11-0ubuntu6) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.7; however:
Package mysql-server-5.7 is not configured yet.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
Saya sudah mencoba sepenuhnya menghapusnya, meskipun demikian upaya untuk menginstal MariaDB karena dependensi (?). Setiap saran tentang apa yang dapat saya lakukan untuk memperbaikinya akan sangat disambut.
EDIT: Sepertinya saya bukan satu-satunya: https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1573279
Jawaban:
Instruksi @ andrew-beerman yang diposting di jalur yang benar, meskipun mereka tidak cukup jelas bagi saya dan tampaknya merekomendasikan lebih dari yang diperlukan. Saya menyatukan jawaban dari atas dan posting bermanfaat di utas bug.
Ini adalah langkah-langkah yang saya ambil untuk memperbaikinya:
Back up Anda
my.cnf file
di/etc/mysql
dan menghapus atau mengubah nama ituHapus folder
/etc/mysql/mysql.conf.d/
menggunakanPastikan Anda tidak
my.cnf
menyimpan file di tempat lain (saya lakukan di dir rumah saya!) Atau sedang/etc/alternatives/my.cnf
digunakanCadangkan dan hapus
/etc/mysql/debian.cnf
file (tidak yakin jika diperlukan, tetapi untuk berjaga-jaga)Jika syslog Anda menampilkan kesalahan seperti "mysqld: Tidak dapat membaca dir dari '/etc/mysql/conf.d/'" buat tautan simbolik:
Maka layanan harus dapat memulai
sudo service mysql start
.Itu berhasil!
sumber
sudo find / -name "my.cnf"
mungkin berguna.Hari ini saya mendapatkan masalah yang sama, setelah mencoba banyak solusi, saya menemukan bahwa masalahnya adalah perintah
sudo systemctl disable mysql.service
yang saya gunakan untuk menonaktifkan mulai otomatis MySQL, jadi untuk membuatnya berfungsi saya mengaktifkan kembali server MySQL menggunakan perintahsudo systemctl enable mysql.service
dan menjalankan lagi proses upgrade dan itu diakhiri dengan sempurna.sumber
sudo systemctl enable mysql.service
dan setelah itu jalankansudo apt install -f
.Pesan kesalahan Anda berisi baris ini:
Namun, ini
installed post-installation script
tidak disebutkan namanya. Setelah banyak mengutak-atik, saya mengetahui bahwa namanya adalah (dalam kasus saya)/var/lib/dpkg/info/mysql-server-5.7.postinst
.Buka file ini dengan
sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
, atau editor pilihan Anda.Di bagian atas, ubah baris 3 (atau lebih):
set -e
untukset -x
, menyimpan file. (opsi-e
adalah "keluar dari kesalahan",-x
berarti "secara eksplisit menunjukkan perintah dieksekusi", mungkin)Jalankan
sudo dpkg --configure -a --log /tmp/dpkg.log
(opsi --log adalah opsional). Anda juga bisa menjalankannyaapt upgrade
jika tahu itu akan menjadi satu-satunya paket yang akan ditingkatkan.Sekarang Anda mendapatkan output verbose dari
mysql-server-5.7.postinst
skrip bash, dan Anda bisa mencari tahu apa yang salah.Dalam kasus saya itu gagal mencoba (kembali) berjalan
mysql_upgrade
, tetapi itu tidak diperlukan untuk instalasi mysql saya yang disesuaikan. Saya yakin saya sudah menjalankannya secara manual sebelumnya, berhasil, dan semuanya baik-baik saja.Jadi saya mengubah jalur 321 (untuk rilis mysqld lama, coba baris 281),
#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?
dan perintah yang telah gagal sebelumnya,
sudo apt upgrade
(jalankan lagi), selesai dengan sukses, dan dpkg menghapus status kesalahan untuk paket ini.Sekarang Anda dapat mengatur kembali
set -x
keset -e
(disebutkan di atas). Dan secara opsional batalkan komentar pada baris mysql-upgrade.Pekerjaan tambahan mungkin diperlukan jika Anda telah memindahkan partisi data mysql Anda ke lokasi yang tidak standar. Saya memindahkan milik saya dari
/var/lib/mysql/data
ke drive lain melalui symlink. Maka Anda mungkin harus menghapus tautan simbolis sementara, sebelumpostinst
manipulasi skrip. Kemudian buat kembali setelah menjalankan pemutakhiran paket.Setelah peningkatan versi minor berikutnya dari paket debian mysqld, masalah dengan
/var/lib/dpkg/info/mysql-server-5.7.postinst
skrip ini dapat muncul kembali.sumber
set -e
saya dapat menyelesaikan masalah yang sebenarnya - MySQL tidak memiliki akses untuk pengguna sistem ubuntu yang ditentukan di/etc/mysql/debian.cnf
. Jadi saya menambahkan pengguna ini ke MySQL dan memberikan hak istimewa, berlaridpkg
lagi dan berhasil!Petunjuk di sini memperbaikinya di server saya: https://bugs.mysql.com/bug.php?id=72722
sumber
dpkg -l | grep mysql
. Itu membantu untuk memahami arah.sudo apt-get purge <pkg-name>
saya perbaiki dengan edit tetapi: Saya menggunakan karakter unicode untuk<
karena kalau tidak itu tidak akan ditampilkan. Berhati-hatilah ketika menyalin perintah iniDalam kasus saya, dengan strace, saya melihat bahwa / var / run / mysqld / tidak ada dan mysqld tidak dapat membuat file mysqld.sock.
Perintah-perintah ini memecahkan masalah saya:
Sekarang:
Dan mysql bekerja lagi :)
sumber
Dalam kasus saya, saya bisa menyelesaikan masalah dengan menambahkan
untuk
/etc/apparmor.d/local/usr.sbin.mysqld
Untuk lebih jelasnya lihat jawaban saya (oleh ChristophS) di stackoverflow.
sumber
Saya memiliki masalah yang sama. Saya mencoba menginstal ulang mysql beberapa kali, tetapi tidak berhasil.
Saya menemukan bahwa masalah bagi saya adalah, bahwa proses mysql lain sudah berjalan.
Secara detail:
Setelah saya membaca dengan seksama login
/var/log/mysql/error.log
, dan menemukan:Sepertinya aplikasi lain sudah menggunakan port.
Saya memeriksanya menggunakan
ps -aux | grep 3306
:Dan saya membunuh proses yang berjalan
sudo kill -15 14706
Lalu saya mulai mysql:
/etc/init.d/mysql start
Akhirnya mysql bekerja untuk saya! Saya harap ini membantu seseorang.
sumber
Tidak ada jawaban di halaman ini yang berfungsi untuk saya.
Saya akhirnya pergi ke halaman unduhan Oracle , mengunduh
mysql-apt-config_0.8.8-1_all.deb
, dan menginstal MySQL dari repo Oracle:sumber
isntall
->install
salah ketik. SO bodoh tidak mengizinkan saya untuk memperbaiki satu karakter.Saya memiliki masalah pada beberapa server sekarang. Perbaikannya adalah menjalankan apt install phpmyadmin --reinstall
yang menyelesaikan di atas (tanpa perlu menyentuh mysql sesudahnya)
sumber