방랑 부트 스트랩 쉘 스크립트에 mysql-server 설치 (설정을 건너 뛰는 방법?)


16

Vagrant Ubuntu 12.04 LTS 가상 머신에 mysql-server를 설치하려고했습니다. 그렇게하면 설치가 자동으로 시작됩니다. Vagrant 출력에서 ​​이것을 볼 수 있습니다.

필수는 아니지만 MySQL 관리 "루트"사용자의 경우 암호 ││을 설정하는 것이 좋습니다 .││││이 필드를 비워두면 암호가 변경되지 않습니다 .││││ 새 암호 MySQL "루트"사용자

그 후 출력 텍스트가 엉망이 ± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...되지만 — 길고 녹색과 적색으로 가득 차서 나머지 설치가 완료된 것으로 생각합니다.

그러나 다음과 같이 설치 부족을 확인할 수 있습니다.

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

MYSQL 서버를 구성하기 위해 쉘 스크립트를 통해 올바른 신호를 보내려면 어떻게해야합니까? 또는 패키지를 설치 한 상태에서 시작된 구성을 자동으로 중지하거나 설치를 종료하려면 어떻게해야합니까?


나머지 설치가 완료되면 다시 설치할 수 없습니다. 설치하기 전에 비밀번호 설정을 시도 했습니까?
Anthon

@Anthon 죄송합니다. 내 게시물에서 이것을 잘 설명하지 못했다고 생각합니다.이 모든 것을 수동으로 구성 할 수 있지만 가능한 한 많은 설정을 자동화하는 것이 목표입니다. 그리고 mysql 설치 (예 : rvm 설치)에 따라이 단계 이후에 많은 단계가 있습니다.
Sam

부정한 시스템으로 인해 문제가 발생하지 않는 한 (정상 가상 시스템 설정에 설치하려고하면) 패키지 자체에 문제가있는 것 같습니다. 이 경우 설치 파일을 패치 (완전히 재구성하지 않고 추출 / 변경 / 입력)하여 로컬 리포지토리에서 제공 한 경우가 있습니다.
Anthon

@Anthon : / 나는 a) 구성 마법사를 자동으로 시작하지 않는 MYSQL 서버 패키지가 있거나 b) 이러한 종류의 시작을 트랩하는 bash-y 방법이 apt-get install mysql-server | some_trap_cmd >> some.file있습니다. 그런 것이 없을 것 같은 소리?
Sam

문제는 apt-get이 설치 프로그램 파일 내에서 스크립트를 실행한다는 것입니다. 스크립트를 패치하지 않으면 트랩을 잡을 수 없습니다. 5.6 mysql을 살펴보고 launchpad 에서 설치할 수도 있지만 모든 종속성을 가져 오는 데 더 많은 문제가 발생할 수 있지만 설치 문제는 사라질 수 있습니다.
Anthon

답변:


29

apt-get 설치를 실행하기 전에 debconf-set-selections 명령을 추가하여 부트 스트랩 파일에서 MySQL 루트 비밀번호를 설정할 수 있습니다.

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

나는 이것을 데비안 기반 시스템에서 작동한다고 가정합니다. 매일 사용하고 상자는 완전히 자동으로 만들어집니다.


1
대박! 이 명령을 몰랐습니다
AlvaroAV

1
나는 debconf-set-selections존재 하지 않았다 . 이것은 완벽하게 작동했습니다. 감사합니다!
Sam

3

Puppet 을 살펴볼 수도 있습니다 . 소프트웨어를 자동으로 설치하고 구성하는 데 탁월합니다. 거기에 또한의 MySQL의 모듈은 ,하지만 난 그것을 시도하지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.