Cài đặt MySQL theo kịch bản trên Ubuntu


23

Tôi cần phải viết một tập lệnh sẽ xây dựng máy chủ của tôi từ bản cài đặt máy chủ Ubuntu mới. Trong số những thứ như Apache và PHP, nó cần cài đặt MySQL. Vấn đề duy nhất ở đây là khi tôi cài đặt MySQL bằng apt-get, đến một lúc nào đó, quá trình cài đặt sẽ xuất hiện một hộp thoại cho phép tôi nhập mật khẩu gốc. Tức là sự tương tác của con người là bắt buộc.

Làm cách nào tôi có thể bỏ qua màn hình này trong khi cài đặt và tránh sự tương tác của con người trong khi vẫn sử dụng apt-get để cài đặt MySQL?


Câu trả lời:


31

Bạn cần phải chèn sẵn cơ sở dữ liệu debconf. debconf cần được cài đặt trước khi bạn thử cái này.

Phiên bản của mysql và ubfox có thể thay đổi dòng:

echo mysql-server mysql-server/root_password select PASSWORD | debconf-set-selections
echo mysql-server mysql-server/root_password_again select PASSWORD | debconf-set-selections

Ví dụ, bạn đã thực hiện điều này thay vào đó:

echo mysql-server-5.0 mysql-server/root_password password PASSWORD | debconf-set-selections
echo mysql-server-5.0 mysql-server/root_password_again password PASSWORD | debconf-set-selections

Có, nó hoạt động, nhưng sau khi cài đặt, tôi không thể đăng nhập vào mysql (gốc mysql -u, nó hiển thị quyền bị từ chối).
Samnang

3
Làm thế nào vềmysql -u root -p
PhilT

Cũng cần cờ 'thấy' như hiển thị bên dưới để tắt hiển thị lời nhắc mật khẩu hoặc bạn sẽ được nhắc lại mật khẩu.
Jamieson Becker

5

Mặc dù FAI và các hệ thống tương tự rất hữu ích trong môi trường doanh nghiệp, (và anh ấy nên biết về chúng), thật không may, chúng không phải là thuốc chữa bách bệnh.

Chẳng hạn, nếu anh ta đang làm việc trên các máy từ xa, có thể được lưu trữ, thuê máy chủ, máy chủ được tạo ra mà không có mạng tin cậy hoặc chuyên dụng hoặc môi trường đám mây như EC2 thì sao? Không có loại netboot PXE nào hoạt động ở đó. Puppet và Chef dường như là những công cụ có mục đích chung hơn có thể giúp anh ta, tuy nhiên.

cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get install somepackage

Name: ...
Template: ...
Value: ...
Owners: ...
Variables:
   ....
   ....
EOF

Bạn có thể nhận được các giá trị chính xác từ DB gỡ lỗi trên hệ thống đã được thiết lập. Kỹ thuật này cho phép bạn dán toàn bộ mọi thứ trong một tập lệnh shell duy nhất. Ví dụ: từ /var/cache/debconf/passwords.dat (lưu ý khả năng hoạt động với cả 5.0 trên Debian và 5.1 và Ubuntu, các mục nhập thêm không làm tổn hại gì):

cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get -qq -y install mysql-server
Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen

Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen

Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen

Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen

EOF

Một phương pháp khác, có lẽ dễ dàng hơn: (thu thập các câu trả lời từ các lựa chọn gỡ lỗi hoặc gỡ lỗi hoặc hiển thị từ gói debconf-utils):

echo "Installing MySQL 5.0.."
sudo apt-get install -qqy debconf-utils
cat << EOF | debconf-set-selections
mysql-server-5.0 mysql-server/root_password password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password_again password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password seen true
mysql-server-5.0 mysql-server/root_password_again seen true
EOF
/usr/bin/apt-get -y install mysql-server-5.0 mysql-server

Sau khi bạn chạy các lựa chọn gỡ lỗi, hãy kiểm tra câu trả lời của bạn: cat /var/cache/debconf/passwords.dat

Và, trong khi kiểm tra, hãy chắc chắn xóa và xóa tất cả các cơ sở dữ liệu (đặc biệt là cơ sở dữ liệu mysql, nơi lưu trữ dữ liệu này) và sửa DB cấu ​​hình của bạn trong trường hợp chúng bị hỏng:

apt-get --purge remove mysql-server*; /usr/share/debconf/fix_db.pl 

Một vài mẹo với điều này: 1) Bạn PHẢI có cờ nhìn thấy và mật khẩu _again. 2) Bạn KHÔNG được đặt dấu ngoặc kép quanh mật khẩu. Nó sẽ đi vào một truy vấn MySQL không được trích dẫn, vì vậy bạn phải tự trích dẫn nó nếu cần. Điều đó cũng có nghĩa là không có khoảng trắng (tôi nghĩ) 3) Nếu bạn gặp khó khăn, hãy thực hiện việc sắp xếp trước bằng tay và sau đó tự chạy cài đặt MySQL (trong một thiết bị đầu cuối / tty bình thường) và xem những gì debconf nói với bạn. Nó sẽ cho bạn biết cảnh báo và lỗi ở đó.


3

Nếu bạn có nhiều máy chủ cần xây dựng lại, tôi khuyên bạn nên xem xét một cái gì đó như Puppet thay vì viết một kịch bản shell. Con rối có một ngôn ngữ mô tả, vì vậy bạn xác định cách bạn muốn hệ thống trông như thế nào, chứ không phải làm thế nào để có được nó ở đó. Loại gói có tùy chọn answerfile cho phép bạn xác định các câu trả lời gỡ lỗi trong câu trả lời của Steven.


1

Tôi cũng có thể đề nghị bạn tự động hóa quá trình dàn máy chủ từ bàn ủi thô?

FAI hiện nay có hồ sơ để cài đặt hầu hết các hệ thống dựa trên Debian, bao gồm Ubuntu, từ mạng. Tất nhiên đây chỉ là một phần mở rộng cho câu trả lời con rối, là phần mở rộng cho câu trả lời gỡ lỗi.

Sự kết hợp dàn dựng từ FAI, sau đó tùy chỉnh với con rối thành vai trò máy chủ (trong đó con rối sẽ sử dụng các công cụ thích hợp cho hệ thống của bạn, như gỡ lỗi cho Debian (-like) thay vì tự động), khá phổ biến ngày nay và nó cũng không nên khó tìm thấy các ví dụ phù hợp với những gì bạn muốn làm khá chặt chẽ.

Một lợi ích bổ sung lớn của việc có máy chủ cấu hình / cấu hình là đó cũng là nơi hợp lý để giữ cho phiên bản cấu hình của bạn được kiểm soát, ví dụ như với git (có lợi ích khi đặt tên trạng thái kho lưu trữ bằng tổng kiểm tra, để bạn an toàn chống tham nhũng như miễn là bạn lưu ý tổng kiểm tra đúng), cho một quy trình thực sự sạch và có thể tái sản xuất.


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.