Menginstal mysql-server di skrip shell bootstrap gelandangan (bagaimana cara melewatkan pengaturan?)

16

Saya memang mencoba menginstal mysql-server pada mesin virtual Vagrant Ubuntu 12.04 LTS saya. Ketika saya melakukannya, pengaturan dimulai secara otomatis. Saya bisa melihat ini di output Vagrant:

Meskipun tidak wajib, Anda sangat disarankan untuk menetapkan kata sandi ││ untuk pengguna "root" administratif MySQL. Jika bidang ini dibiarkan kosong, kata sandi tidak akan diubah. Kata sandi baru untuk Pengguna "root" MySQL

Setelah itu teks keluaran menjadi kusut - ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...- tetapi agak panjang dan penuh warna hijau dan merah, jadi saya percaya sisa instalasi selesai.

Tetapi saya dapat mengkonfirmasi kurangnya pemasangan setelah:

sudo apt-get install --just-print mysql-server-5.5 
...
The following NEW packages will be installed:
  mysql-server-5.5

Bagaimana saya bisa mengirim sinyal yang tepat melalui skrip shell untuk mengkonfigurasi server MYSQL? Atau jika saya tidak bisa, bagaimana saya bisa menghentikan peluncuran konfigurasi secara otomatis atau mematikan pengaturan yang pernah diluncurkan ketika masih menginstal paket?

Sam
sumber
Jika sisa instalasi selesai , itu tidak akan memungkinkan Anda untuk menginstal lagi. Sudahkah Anda mencoba mengatur kata sandi sebelum instalasi?
Anthon
@Anthon Maaf saya tidak berpikir saya menjelaskan ini dengan baik di posting saya: Saya dapat secara manual mengkonfigurasi semua ini, tetapi tujuan saya adalah untuk mengotomatiskan sebanyak mungkin pengaturan saya. Dan saya punya banyak langkah setelah ini yang bergantung pada mysql diinstal (menginstal rvm misalnya).
Sam
Kecuali masalahnya disebabkan oleh sistem yang tidak bersih (coba instal dalam pengaturan mesin virtual yang bersih), ini terdengar seperti masalah dengan paket itu sendiri. Dalam kasus seperti itu saya kadang-kadang menambal file instalasi (bukan pembangunan kembali yang lengkap, hanya mengekstrak / mengubah / menggabungkan) dan menyajikannya dari repositori lokal.
Anthon
@Anthon: / Saya berharap dapat menemukan solusi seperti a) Paket server MYSQL ada yang tidak secara otomatis meluncurkan wizard konfigurasi atau b) ada cara bash-y untuk menjebak jenis peluncuran ini ( apt-get install mysql-server | some_trap_cmd >> some.file). Kedengarannya mungkin tidak ada yang seperti itu?
Sam
Masalahnya adalah bahwa apt-get menjalankan skrip di dalam file pemasang, Anda tidak akan terjebak dalam perangkap kecuali Anda menambal skrip. Anda juga bisa melihat pada mysql 5.6 dan menginstalnya dari launchpad , tetapi itu bisa membuat lebih banyak masalah dalam menarik semua dependensi, tetapi mungkin masalah instalasi hilang.
Anthon

Jawaban:

29

Anda dapat mengatur kata sandi root MySQL di file bootstrap Anda dengan menambahkan perintah debconf-set-selection sebelum menjalankan apt-get install Anda:

#!/usr/bin/env bash

debconf-set-selections <<< 'mysql-server mysql-server/root_password password MySuperPassword'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password MySuperPassword'
apt-get update
apt-get install -y mysql-server

Saya menganggap ini bekerja pada sistem berbasis Debian. Saya menggunakannya setiap hari, kotak dibangun sepenuhnya secara otomatis.

Kopi
sumber
1
Luar biasa! Saya tidak tahu perintah ini
AlvaroAV
1
Saya tidak debconf-set-selectionsada. Ini bekerja dengan sempurna. Terima kasih!
Sam
3

Anda mungkin ingin melihat Wayang - ini sangat baik untuk menginstal dan mengkonfigurasi perangkat lunak secara otomatis. Ada juga modul MySQL , tapi saya belum mencobanya.

l0b0
sumber