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 install
sendiri 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?
14.04
mysql
amazon-ec2
Pelajar Web
sumber
sumber
Jawaban:
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:
max_connections
variabel MySQLsumber
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!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:
Ubah izinnya menjadi hanya root yang dapat mengakses dan mengubah:
Buat swap:
Mengaktifkan:
Sekarang Anda dapat mencoba menginstal mysql lagi, seharusnya berhasil kali ini. Ingatlah untuk menghapus instalasi sebelumnya yang gagal sebelum Anda melakukannya.
sumber
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: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):
Perhatikan bahwa paket yang sama berfungsi pada semua platform Debian dan Ubuntu yang didukung.
Perbarui informasi paket dari repositori MySQL APT dengan perintah berikut (langkah ini wajib):
Menginstal MySQL dengan APT
Instal MySQL dengan perintah berikut:
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.
Server MySQL dimulai secara otomatis setelah instalasi. - Anda dapat memeriksa status server MySQL dengan perintah berikut:
Hentikan server MySQL dengan perintah berikut:
Untuk me-restart server MySQL, gunakan perintah berikut:
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
.sumber
Dalam kasus saya, saya telah menambahkan
ke
/etc/mysql/my.cnf
sumber
Menonaktifkan performance_schema juga menghemat banyak memori. Database kosong saya mulai dari 400m hingga 40m saat startup:
MySQL Docs: http://dev.mysql.com/doc/refman/5.6/id/performance-schema.html
sumber
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,
dpkg
sedang mencari/etc/mysql/conf.d
, yang tidak ada (namun/etc/mysql/mysql.conf.d
ternyata!). Menginstal ulang mysql dan secara manual membuat folder/etc/mysql/conf.d
menyelesaikan 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 berlaridpkg --configure -a
untuk menyelesaikan instalasi.Saya berlari
strace 2>/tmp/trace dpkg --configure -a
. Itu membuat sayastrace
log 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 raihENOENT
. Seperti yang saya katakan, solusi ini mungkin khusus untuk komputer saya, tetapi Anda mungkin ingin mencobanya.sumber
Dalam kasus saya semua yang perlu saya lakukan adalah membuat beberapa perubahan
my.cnf
dan hanya menghapus 2 file log bernamaib_logfile0
danib_logfile1
, dan mulai mysqlTidak perlu menginstal ulang mysql, cukup hapus 2 file log ini dan restart server mysql
Di bawah ini saya membuat perubahan
my.cnf
:sumber