2012-03-16 37 views
14

Tôi có thể cài đặt MYSQL trên Ubuntu mà không cần nhắc nhở với mã dưới đây:Cài đặt Percona/MySQL tầm kiểm soát trên Ubuntu

dbpass="mydbpassword" 
export DEBIAN_FRONTEND=noninteractive 
echo mysql-server-5.1 mysql-server/root_password password $dbpass | debconf-set-selections 
echo mysql-server-5.1 mysql-server/root_password_again password $dbpass | debconf-set-selections 
apt-get -y install mysql-server 

Phần với debconf-set-selections tôi đã ở đâu đó trên mạng (có thể là ở đây có thể không nhớ) và nó đã làm việc ok cho tôi cho đến nay. Tôi không phải là một chuyên gia để hiểu nó hoạt động như thế nào.

Tuy nhiên, tôi muốn làm điều tương tự cho Percona. Tôi đã thiết lập trình quản lý gói apt để xử lý việc sử dụng apt-get cho percona. Vì vậy, bây giờ mã của tôi là như sau:

dbpass="dbpass" && export dbpass 
export DEBIAN_FRONTEND=noninteractive 
echo percona-server-server-5.5 percona-server-server-5.5/root_password password $dbpass | debconf-set-selections 
echo percona-server-server-5.5 percona-server-server-5.5/root_password_again password $dbpass | debconf-set-selections 
apt-get -y install percona-server-server-5.5 

Tuy nhiên, Percona cài đặt nhưng không có mật khẩu được định nghĩa. Tôi biết tôi đang thiếu một cái gì đó trong bit debconf.

Tôi đánh giá cao một số hướng dẫn tại đây.

Xin cảm ơn trước.

Trả lời

0

bạn luôn có thể làm cài đặt bình thường và sau đó kịch bản:

  • giết mysql máy chủ
  • bắt đầu nó với skip-grant-tables
  • điều chỉnh mật khẩu
  • giết chết mysql tạm thời bắt đầu mà không xác thực
  • bắt đầu thường xuyên mysql
+0

Tôi cần cài đặt không giám sát 100%. Cách tiếp cận của bạn có phù hợp với hóa đơn và bạn có bất kỳ mẫu mã nào không? –

5

Tôi thực sự phát hiện ra rằng câu trả lời ở đây install mysql on ubuntu without password prompt rằng đề nghị

export DEBIAN_FRONTEND=noninteractive apt-get -q -y install mysql-server

Làm việc và để lại cho tôi với một người dùng root không mật mã, đó là những gì tôi muốn.

5

Phần thứ hai của debconf-prefix không được chứa số phiên bản:

echo percona-server-server-5.5 percona-server-server/root_password password $dbpass | sudo debconf-set-selections 
echo percona-server-server-5.5 percona-server-server/root_password_again password $dbpass | sudo debconf-set-selections 

Đối 5.6:

echo percona-server-server-5.6 percona-server-server/root_password password $dbpass | sudo debconf-set-selections 
echo percona-server-server-5.6 percona-server-server/root_password_again password $dbpass | sudo debconf-set-selections 
2

Think I figured it out

echo "percona-server-server-5.5 mysql-server/root_password password mypassword" | debconf-set-selections 
echo "percona-server-server-5.5 mysql-server/root_password_again password mypassword" | debconf-set-selections 

Không sử dụng export DEBIAN_FRONTEND=noninteractive. Nếu các mục nhập debconf là đúng, thì bạn sẽ không được nhắc. Nếu chúng không chính xác và bạn sử dụng noninteractive thì lời nhắc sẽ tiếp tục với mật khẩu trống.

Kể từ Percona 'móc vào' MySQL kiểm tra xem nó được cài đặt một cách chính xác bằng

service mysql status 

và bạn sẽ biết nó là Percona nếu bạn nhìn thấy một cái gì đó giống như

mysql.dịch vụ - LSB: Bắt đầu và dừng mysql (Percona Server) daemon

Sau đó, cuối cùng kiểm tra mật khẩu đã được thiết lập một cách chính xác

mysql -u user -pmypassword 

EDIT: Điều đó nói rằng, đối với một phiên bản mới hơn của Percona, F21 Câu trả lời của tôi đã có hiệu quả. Bạn có thể kiểm tra các mục nhập trong /var/cache/debconf/passwords.dat

+0

Cảm ơn. Đã lâu rồi tôi cần cái này, nhưng tôi sẽ thử cái này và thấy. –

+0

Làm việc cho tôi. +1 – Plenka

0

Nếu bạn hiểu những gì đang diễn ra bên dưới nắp, nó giúp dễ dàng gỡ lỗi hơn và tìm hiểu lý do tại sao tính năng này không hoạt động.

Khi bạn cài đặt gói debian thường xuyên khi bạn nhận được câu hỏi về giấy phép, mật khẩu, vị trí, vv Tất cả các giá trị đó được lưu trữ trong debconf. Nếu bạn muốn thực hiện cài đặt không cần giám sát, bạn có thể tải trước các câu trả lời đó vào debconf, do đó bạn không được nhắc về các câu hỏi đó, vì chúng đã được trả lời.

Thử thách xuất hiện khi hiểu cách trả lời đúng các câu hỏi đó. Để làm điều này lần đầu tiên bạn cần phải cài đặt debconf-utils

apt install debconf-utils

tiếp theo bạn cần phải cài đặt gói của bạn.

Trong trường hợp của tôi, tôi đang cài đặt gói percona-xtradb-cluster-57.

wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb 
sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb 
sudo apt-get update -y 
sudo apt-get install -y percona-xtradb-cluster-57 

Sau khi cài đặt này bạn có thể nhận được các lựa chọn đã được thiết lập bằng cách sử dụng công cụ deb-get-selections.

debconf-set-selections | grep percona 

Trong phản ứng, bạn sẽ thấy các lựa chọn đã được thiết lập. Trong trường hợp này

percona-xtradb-cluster-server-5.7 percona-xtradb-cluster-server-5.7/root-pass password 
percona-xtradb-cluster-server-5.7 percona-xtradb-cluster-server-5.7/re-root-pass password 
percona-xtradb-cluster-server-5.7 percona-xtradb-cluster-server-5.7/remove-data-dir boolean false 
percona-xtradb-cluster-server-5.7 percona-xtradb-cluster-server-5.7/root-pass-mismatch error 
percona-xtradb-cluster-server-5.7 percona-xtradb-cluster-server-5.7/data-dir note 

Bây giờ bạn có thể sao chép các giá trị bạn muốn đặt. Trong trường hợp của tôi, tôi muốn tự động thiết lập mật khẩu gốc.

Trong tập lệnh cài đặt tự động, bây giờ bạn có thể sử dụng công cụ debconf-set-selections để tự động đặt giá trị cho câu hỏi mật khẩu gốc và câu hỏi xác nhận mật khẩu gốc.

echo "percona-xtradb-cluster-server-5.7 percona-xtradb-cluster-server-5.7/root-pass password my_temp_password" | debconf-set-selections 
echo "percona-xtradb-cluster-server-5.7 percona-xtradb-cluster-server-5.7/re-root-pass password my_temp_password" | debconf-set-selections 

Vui lòng tự động!

Các vấn đề liên quan