Mengapa instalasi MySQL 5.6 di Ubuntu 14.04 gagal?

30

Saya ingin melihat MySQL 5.6 di Ubuntu 14.04 hanya karena penasaran. Dan berdasarkan artikel ini tentu terlihat seperti instalasi harus sederhana dan mudah. Jadi saya menyalakan server mikro AWS EC2 yang menjalankan Ubuntu 14.04 (64-bit), masuk ke instance asli saya (melalui Putty), dan mengeluarkan perintah berikut:

$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6

(Dua perintah pertama adalah gerakan putus asa, karena hanya menjalankan apt-get installsendiri sebelumnya tidak berhasil. Tetapi bahkan dengan ketiga perintah, langkah instal masih tidak bekerja.)

Pada titik di mana saya harapkan, berdasarkan artikel yang dirujuk di atas, untuk melihat output ini dari perintah terakhir:

mysql start/running, process 2355  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

Saya mendapatkan ini sebagai gantinya:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

Adakah yang bisa melihat apa yang salah?

Pelajar Web
sumber
1
apa kata log? cat /var/log/mysql.err
Paté

Jawaban:

22

Masalah yang Anda alami terlihat sama dengan laporan bug ini . Kegagalan untuk memulai tampaknya karena konfigurasi default MySQL 5.6 membutuhkan lebih banyak memori daripada yang bisa didapat dalam mikro instance Anda.

Solusi untuk kesalahan tampaknya adalah melakukan salah satu dari yang berikut:

  • Tambah jumlah memori pada instance EC2 Anda
  • Tetapkan nilai yang lebih kecil untuk max_connectionsvariabel MySQL
Mike Miller
sumber
1
Ya, masalah ini PERSIS kesalahan yang ditampilkan dalam laporan bug itu. Terima kasih! Sejauh ini saya mencoba perbaikan cepat yang disarankan, yaitu untuk memastikan bahwa /etc/apparmor.d/local/usr.sbin.mysqld ada, dan sayangnya itu tidak berhasil. Jadi sekarang saya akan mencoba instalasi dengan lebih banyak memori.
WebLearner
1
Untuk percobaan berikutnya, alih-alih menggunakan instance EC2, saya membuat mesin virtual Ubuntu 14,04 dengan memori 2GB menggunakan Oracle VM Virtualbox, dan dalam lingkungan ini instalasi MySQL 5.6 berlayar tanpa hambatan menggunakan sudo apt-get install mysql-server-5.6. Jadi nampaknya sebuah instance mikro EC2 tidak memiliki cukup memori untuk menginstal MySQL 5.6 menggunakan apt-get!
WebLearner
1
Komentar tambahan ditambahkan ke laporan bug yang menyarankan pengurangan max_connections MySQL sebelum menginstal MySQL 5.6. Saya mengambil saran itu dan menambahkan file .cnf ke /etc/mysql/conf.d yang berisi dua baris: "[mysqld]" dan "max_connections = 20". Dengan file itu di tempat, instalasi MySQL saya pada mikro EC2 baru berlayar. (Menurut dokumentasi nilai default untuk max_connections adalah 151. Menetapkannya ke 20 mungkin ekstrem. Tapi setidaknya itu menunjukkan bahwa itu mungkin untuk mendapatkan MySQL untuk menginstal.)
WebLearner
Untuk info tambahan: Saya memeriksa /var/lib/dpkg/info/mysql-server-5.6.postinst dan saya menemukan bahwa Anda dapat menjalankan skrip itu untuk mereproduksi langkah-langkah tepat yang gagal
shakaran
Ini bekerja pada gelandangan saya, saya telah menetapkan 1G RAM dan memperbaikinya. Terima kasih. : D
Chu-Siang Lai
24

Saya mengalami masalah yang sama ketika saya init VPS kecil saya. Masalah ini disebabkan oleh memori yang kecil. Jadi tanpa mengeluarkan uang tambahan untuk menambah memori yang tidak Anda butuhkan, Anda bisa membuat file swap untuk membantu pemasangan. Ya swap itu lambat, tetapi yang Anda butuhkan hanyalah menyelesaikan instalasinya.

Di Ubuntu 14.04, saya melakukan hal berikut untuk menyelesaikan masalah:

Buat file swap 4G:

sudo fallocate -l 4G /swapfile

Ubah izinnya menjadi hanya root yang dapat mengakses dan mengubah:

sudo chmod 600 /swapfile

Buat swap:

sudo mkswap /swapfile

Mengaktifkan:

sudo swapon /swapfile

Sekarang Anda dapat mencoba menginstal mysql lagi, seharusnya berhasil kali ini. Ingatlah untuk menghapus instalasi sebelumnya yang gagal sebelum Anda melakukannya.

Arthur Wang
sumber
Yup, jawaban sempurna. Sangat menakjubkan.
Gelisah
3

Saya mengalami masalah yang sama. Meskipun saya memiliki memori 12Gb yang cukup besar yang diberikan kepada VM saya, tetapi masih ada beberapa hal yang gagal seperti yang dimaksud. Setelah menghabiskan beberapa waktu menemukan bahwa apt apt get ada beberapa terjemahan konfigurasi dan paket terjemahan alat.

Repositori apt MySQL menyediakan cara sederhana dan nyaman untuk menginstal dan memperbarui produk MySQL dengan menggunakan paket perangkat lunak terbaru apt-get. Inilah yang harus Anda ikuti:

  1. Menambahkan Repositori MySQL APT Pertama, tambahkan repositori apt apt MySQL ke daftar repositori perangkat lunak sistem Anda. Ikuti langkah ini:

    • Buka halaman unduh untuk repositori apt MySQL di http://dev.mysql.com/downloads/repo/apt/ .

    • Pilih dan unduh paket rilis.

    • Instal paket rilis yang diunduh dengan perintah berikut, ganti nama paket-spesifik-nama dengan nama paket yang diunduh (didahului oleh lintasannya, jika Anda tidak menjalankan perintah di dalam folder tempat paket berada):

      sudo dpkg -i /PATH/version-specific-package-name.deb
      

    Perhatikan bahwa paket yang sama berfungsi pada semua platform Debian dan Ubuntu yang didukung.

    • Selama instalasi paket, Anda akan diminta untuk memilih versi server MySQL dan komponen lainnya (misalnya, Workbench MySQL) yang ingin Anda instal. Jika Anda tidak yakin versi mana yang akan dipilih, jangan ubah opsi default yang dipilih untuk Anda. Anda juga dapat memilih tidak ada jika Anda tidak ingin komponen tertentu diinstal. Setelah membuat pilihan untuk semua komponen, pilih OK untuk menyelesaikan konfigurasi dan pemasangan paket rilis.

    Anda selalu dapat mengubah pilihan untuk versi nanti;
    lihat Memilih Versi Rilis Utama untuk instruksi.

    • Perbarui informasi paket dari repositori MySQL APT dengan perintah berikut (langkah ini wajib):

      sudo apt-get update
      
  2. Menginstal MySQL dengan APT

    • Instal MySQL dengan perintah berikut:

      sudo apt-get install mysql-server
      

Ini menginstal paket untuk server MySQL, serta paket untuk klien dan untuk file-file umum database.

Selama instalasi, ada dua permintaan oleh kotak dialog: Berikan kata sandi untuk pengguna root untuk instalasi MySQL Anda.

  1. Memulai dan Menghentikan Server MySQL

Server MySQL dimulai secara otomatis setelah instalasi. - Anda dapat memeriksa status server MySQL dengan perintah berikut:

sudo service mysql status
  • Hentikan server MySQL dengan perintah berikut:

    sudo service mysql stop
    
  • Untuk me-restart server MySQL, gunakan perintah berikut:

    sudo service mysql start
    

Saya mengikuti http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install ini . Ini bekerja dengan lancar dan mengunduh semua paket dan berhasil diinstal mysql 5.6.

Ritesh
sumber
Terima kasih David. Ini masuk akal. Saya telah mengubah jawaban untuk langkah-langkah yang lebih rinci. Terima kasih.
Ritesh
+1 untuk jawaban yang ditingkatkan.
David Foerster
terakhir adalah saya ... ini benar-benar saya? :)
cepat
2

Dalam kasus saya, saya telah menambahkan

innodb_buffer_pool_size = 20M

ke /etc/mysql/my.cnf

maxkoryukov
sumber
1
Pengguna mengalami masalah dalam menginstal MySQL, tidak menggunakannya.
Terima kasih, saya telah membaca pertanyaan) Saya mendapat masalah yang sama selama instalasi. Sebenarnya instalasi selesai dan mysql sudah dapat diakses sebagai layanan, dan kita bisa menjalankannya. Tetapi pada langkah terakhir dari proses instalasi (memulai mysqld) kita menangkap kesalahan yang mengganggu ini.
maxkoryukov
1

Saya mengalami masalah ini di Ubuntu 15.10. Bagi saya itu bukan masalah memori (saya punya ram 2GB dan 18GB swap, yang hanya sekitar 300MB digunakan secara total).

Dalam kasus saya, dpkgsedang mencari /etc/mysql/conf.d, yang tidak ada (namun /etc/mysql/mysql.conf.dternyata!). Menginstal ulang mysql dan secara manual membuat folder /etc/mysql/conf.dmenyelesaikan masalah saya.

Bagaimana tepatnya ini terjadi? Saya tidak punya ide. Saya hampir tidak ingin membagikan jawaban saya, karena saya yakin solusi ini khusus untuk komputer saya.

Saya memecahkan masalah ini dengan menggunakan utilitas strace, yang fantastis untuk hal semacam ini, jika sangat bertele-tele.

Saya menggunakannya seperti ini:

  • Setelah menekan ctrlcsetengah jalan apt-get install mysql-server, saya harus berlari dpkg --configure -auntuk menyelesaikan instalasi.

  • Saya berlari strace 2>/tmp/trace dpkg --configure -a. Itu membuat saya stracelog bagus di /tmp/trace.

  • Saya melihat-lihat log, terutama di bagian bawah, di mana ia gagal.

  • Saya perhatikan itu mencoba mengakses /etc/mysql/conf.d, dan mendapat kode kesalahan ENOENT, tidak ada file atau direktori tersebut .

Bagi siapa pun yang ingin mencobanya, lakukan strace 2>/tmp/trace (command)dan raih ENOENT. Seperti yang saya katakan, solusi ini mungkin khusus untuk komputer saya, tetapi Anda mungkin ingin mencobanya.

anak aprikot
sumber
0

Dalam kasus saya semua yang perlu saya lakukan adalah membuat beberapa perubahan my.cnfdan hanya menghapus 2 file log bernama ib_logfile0dan ib_logfile1, dan mulai mysql

service mysql start

Tidak perlu menginstal ulang mysql, cukup hapus 2 file log ini dan restart server mysql

Di bawah ini saya membuat perubahan my.cnf:

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 
Lavina Chitara
sumber
Harap tambahkan sedikit jawaban Anda sehingga orang lain dapat mengikuti.
George Udosen