Cài đặt mysql-server trong tập lệnh shell bootstrap mơ hồ (làm thế nào để bỏ qua thiết lập?)


16

Tôi đã thử cài đặt máy chủ mysql trên máy ảo Vagrant Ubuntu 12.04 LTS của mình. Khi tôi làm như vậy, thiết lập tự động bắt đầu. Tôi có thể thấy điều này trong đầu ra Vagrant:

Mặc dù không bắt buộc, nhưng bạn nên đặt mật khẩu ││ cho người dùng "root" quản trị viên MySQL. Nếu trường này bị bỏ trống, mật khẩu sẽ không bị thay đổi. Mật khẩu mới cho Người dùng "root" MySQL

Sau đó, văn bản đầu ra đi haywire - ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...- nhưng khá dài và đầy màu xanh lá cây và đỏ, vì vậy tôi tin rằng phần còn lại của quá trình cài đặt đã hoàn tất.

Nhưng tôi có thể xác nhận việc thiếu cài đặt sau:

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

Làm cách nào để gửi tín hiệu đúng qua tập lệnh shell để định cấu hình máy chủ MYSQL? Hoặc nếu tôi không thể, làm cách nào tôi có thể dừng tự động khởi chạy cấu hình hoặc tắt cài đặt sau khi khởi chạy trong khi vẫn cài đặt gói?


Nếu phần còn lại của quá trình cài đặt hoàn tất , nó sẽ không cho phép bạn cài đặt lại. Bạn đã thử thiết lập mật khẩu trước khi cài đặt chưa?
Anthon

@Anthon Xin lỗi tôi không nghĩ rằng tôi đã giải thích điều này tốt trong bài viết của mình: Tôi có thể tự cấu hình tất cả những điều này, nhưng mục tiêu của tôi là tự động hóa càng nhiều thiết lập của tôi càng tốt. Và tôi có nhiều bước sau đó phụ thuộc vào mysql được cài đặt (ví dụ cài đặt rvm).
Sam

Trừ khi các vấn đề được gây ra bởi một hệ thống ô uế (cố gắng cài đặt trong một thiết lập máy ảo sạch), điều này nghe có vẻ như là một vấn đề với chính gói. Trong những trường hợp như vậy, đôi khi tôi đã vá tệp cài đặt (không phải là bản dựng lại hoàn chỉnh, chỉ cần giải nén / thay đổi / ghép lại) và phục vụ nó từ kho lưu trữ cục bộ.
Anthon

@Anthon: / Tôi đã hy vọng tìm ra giải pháp như a) Gói máy chủ MYSQL tồn tại không tự động khởi chạy trình hướng dẫn cấu hình hoặc b) có một cách bash-y để bẫy các loại khởi chạy này ( apt-get install mysql-server | some_trap_cmd >> some.file). Âm thanh như có thể không có điều đó tồn tại?
Sam

Vấn đề là apt-get chạy các tập lệnh trong tệp trình cài đặt, bạn sẽ không bắt được bẫy trong đó trừ khi bạn vá các tập lệnh. Bạn cũng có thể xem qua 5,6 mysql và cài đặt nó từ launchpad , nhưng điều đó có thể tạo ra nhiều rắc rối hơn trong tất cả các phụ thuộc, nhưng có thể các vấn đề cài đặt đã biến mất.
Anthon

Câu trả lời:


29

Bạn có thể đặt mật khẩu gốc của MySQL trong tệp bootstrap của mình bằng cách thêm các lệnh debconf-set-selections trước khi chạy cài đặt apt-get của bạn:

#!/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

Tôi đoán nó hoạt động trên mọi hệ thống dựa trên Debian. Tôi sử dụng nó hàng ngày, hộp được xây dựng hoàn toàn tự động.


1
Tuyệt vời! Tôi không biết lệnh này
AlvaroAV

1
Tôi đã không debconf-set-selectionstồn tại. Điều này làm việc hoàn hảo. Cảm ơn bạn!
Sam

3

Bạn có thể muốn xem xét Puppet - thật tuyệt vời khi cài đặt và định cấu hình phần mềm tự động. Cũng có một mô-đun MySQL , nhưng tôi đã không thử nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.