Tại sao cài đặt MySQL 5.6 trên Ubuntu 14.04 không thành công?


30

Tôi muốn có một cái nhìn về MySQL 5.6 trên Ubuntu 14.04 vì tò mò. Và dựa trên bài viết này, nó chắc chắn trông giống như cài đặt nên đơn giản và dễ hiểu. Vì vậy, tôi đã kích hoạt một máy chủ vi mô AWS EC2 chạy Ubuntu 14.04 (64 bit), đăng nhập vào thể hiện nguyên sơ của tôi (thông qua PuTTY) và đưa ra các lệnh sau:

$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6

(Hai lệnh đầu tiên là các động tác tuyệt vọng, vì đơn giản là chạy apt-get installmột mình trước đây không hoạt động. Nhưng ngay cả với cả ba lệnh, bước cài đặt vẫn không hoạt động.)

Tại điểm mà tôi mong đợi, dựa trên bài viết được tham chiếu ở trên, để xem kết quả này từ lệnh cuối cùng:

mysql start/running, process 2355  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

Tôi đã nhận điều này thay thế:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

Bất cứ ai có thể nhìn thấy những gì đã đi sai?


1
Nhật ký nói gì? mèo /var/log/mysql.err
Paté

Câu trả lời:


22

Vấn đề bạn đang gặp phải giống như báo cáo lỗi này . Thất bại trong việc bắt đầu dường như là do cấu hình MySQL 5.6 mặc định đòi hỏi nhiều bộ nhớ hơn so với trong trường hợp vi mô của bạn.

Giải pháp cho lỗi dường như là thực hiện một trong những điều sau đây:

  • Tăng dung lượng bộ nhớ trong thể hiện EC2 của bạn
  • Đặt giá trị nhỏ hơn cho max_connectionsbiến của MySQL

1
Có, vấn đề này chính xác là lỗi hiển thị trong báo cáo lỗi đó. Cảm ơn! Cho đến nay tôi đã thử cách khắc phục nhanh được đề xuất, đó là để đảm bảo rằng /etc/apparmor.d/local/usr.sbin.mysqld tồn tại và thật không may, điều đó đã không xảy ra. Vì vậy, bây giờ tôi sẽ thử cài đặt với nhiều bộ nhớ hơn.
WebLearner

1
Lần thử tiếp theo, thay vì sử dụng phiên bản EC2, tôi đã tạo một máy ảo Ubuntu 14.04 với 2GB bộ nhớ bằng Oracle VM Virtualbox và trong môi trường này, bản cài đặt MySQL 5.6 đã chạy qua mà không gặp trở ngại nào khi sử dụng sudo apt-get install mysql-server-5.6. Vì vậy, chắc chắn có một phiên bản vi mô EC2 không có đủ bộ nhớ để cài đặt MySQL 5.6 bằng apt-get!
WebLearner

1
Một nhận xét bổ sung đã được thêm vào báo cáo lỗi đề xuất giảm max_connections của MySQL trước khi cài đặt MySQL 5.6. Tôi đã lấy lời khuyên đó và thêm tệp .cnf vào /etc/mysql/conf.d có hai dòng: "[mysqld]" và "max_connections = 20". Với tệp đó, cài đặt MySQL của tôi trên micro EC2 mới chạy qua. (Theo tài liệu, giá trị mặc định cho max_connections là 151. Đặt nó thành 20 có lẽ là cực kỳ. Nhưng ít nhất nó cho thấy có thể cài đặt MySQL để cài đặt.)
WebLearner

Để biết thêm thông tin: Tôi kiểm tra /var/lib/dpkg/info/mysql-server-5.6.postinst và tôi thấy rằng bạn có thể chạy tập lệnh đó để sao chép các bước chính xác đang thất bại
shakaran

Nó hoạt động rất tốt, tôi đã đặt RAM 1G và sửa nó. cảm ơn bạn. : D
Chu-Siang Lai

24

Tôi đã gặp phải vấn đề tương tự khi tôi khởi tạo VPS nhỏ của mình. Vấn đề được gây ra bởi bộ nhớ nhỏ. Vì vậy, không tốn thêm tiền để tăng bộ nhớ mà bạn không cần, bạn chỉ cần tạo các tệp hoán đổi để hỗ trợ cài đặt. Có, trao đổi là chậm, nhưng tất cả những gì bạn cần là cài đặt xong.

Trên Ubuntu 14.04, tôi làm như sau để giải quyết vấn đề:

Tạo tệp hoán đổi 4G:

sudo fallocate -l 4G /swapfile

Thay đổi quyền của nó để chỉ root mới có thể truy cập và thay đổi:

sudo chmod 600 /swapfile

Làm cho nó hoán đổi:

sudo mkswap /swapfile

Kích hoạt:

sudo swapon /swapfile

Bây giờ bạn có thể thử cài đặt mysql lần nữa, lần này sẽ thành công. Chỉ cần nhớ gỡ bỏ cài đặt không thành công trước đó trước khi bạn làm như vậy.


Yup, câu trả lời hoàn hảo. Thật tuyệt vời.
Wren

3

Tôi đã gặp phải vấn đề tương tự. Mặc dù tôi đã có bộ nhớ đủ lớn 12Gb cho máy ảo của mình, nhưng mọi thứ vẫn thất bại như trong câu hỏi. Sau khi dành một chút thời gian thấy rằng apt get mặc định đã thiếu một số gói dịch cấu hình và dịch công cụ.

Kho lưu trữ apt của MySQL cung cấp một cách đơn giản và thuận tiện để cài đặt và cập nhật các sản phẩm MySQL với các gói phần mềm mới nhất sử dụng apt-get. Đây là những gì bạn phải làm theo:

  1. Thêm Kho lưu trữ APT của MySQL Trước tiên, hãy thêm kho lưu trữ apt của MySQL vào danh sách kho lưu trữ phần mềm của hệ thống. Thực hiện theo các bước sau:

    • Chuyển đến trang tải xuống cho kho lưu trữ apt của MySQL tại http://dev.mysql.com/doads/repo/apt/ .

    • Chọn và tải xuống gói phát hành.

    • Cài đặt gói phát hành đã tải xuống bằng lệnh sau, thay thế tên gói cụ thể theo phiên bản bằng tên của gói đã tải xuống (trước đường dẫn của gói, nếu bạn không chạy lệnh bên trong thư mục chứa gói):

      sudo dpkg -i /PATH/version-specific-package-name.deb
      

    Lưu ý rằng cùng một gói hoạt động trên tất cả các nền tảng Debian và Ubuntu được hỗ trợ.

    • Trong quá trình cài đặt gói, bạn sẽ được yêu cầu chọn các phiên bản của máy chủ MySQL và các thành phần khác (ví dụ: Bàn làm việc MySQL) mà bạn muốn cài đặt. Nếu bạn không chắc chắn nên chọn phiên bản nào, đừng thay đổi các tùy chọn mặc định được chọn cho bạn. Bạn cũng có thể chọn không nếu bạn không muốn cài đặt một thành phần cụ thể. Sau khi đưa ra các lựa chọn cho tất cả các thành phần, chọn OK để hoàn tất cấu hình và cài đặt gói phát hành.

    bạn luôn có thể thay đổi lựa chọn của mình cho các phiên bản sau;
    xem phần Chọn Phiên bản phát hành chính để được hướng dẫn.

    • Cập nhật thông tin gói từ kho lưu trữ APT của MySQL bằng lệnh sau (bước này là bắt buộc):

      sudo apt-get update
      
  2. Cài đặt MySQL với APT

    • Cài đặt MySQL bằng lệnh sau:

      sudo apt-get install mysql-server
      

Điều này cài đặt gói cho máy chủ MySQL, cũng như các gói cho máy khách và cho các tệp chung của cơ sở dữ liệu.

Trong quá trình cài đặt, có hai yêu cầu của các hộp thoại: Cung cấp mật khẩu cho người dùng root để cài đặt MySQL của bạn.

  1. Bắt đầu và dừng máy chủ MySQL

Máy chủ MySQL được khởi động tự động sau khi cài đặt. - Bạn có thể kiểm tra trạng thái của máy chủ MySQL bằng lệnh sau:

sudo service mysql status
  • Dừng máy chủ MySQL bằng lệnh sau:

    sudo service mysql stop
    
  • Để khởi động lại máy chủ MySQL, sử dụng lệnh sau:

    sudo service mysql start
    

Tôi đã theo dõi http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install này . Điều này hoạt động trơn tru và tải xuống tất cả các gói và cài đặt thành công mysql 5.6.


Cảm ơn David. Điều này có ý nghĩa. Tôi đã thay đổi câu trả lời cho các bước chi tiết hơn. Cảm ơn.
Ritesh

+1 cho câu trả lời được cải thiện.
David Foerster

cuối cùng là tôi, nó thực sự là tôi? :)
nhanh chóng

2

Trong trường hợp của tôi, tôi đã thêm

innodb_buffer_pool_size = 20M

để /etc/mysql/my.cnf


1
Người dùng đang gặp sự cố khi cài đặt MySQL, không sử dụng.

Cảm ơn, tôi đã đọc câu hỏi) Tôi gặp vấn đề tương tự trong quá trình cài đặt. Trên thực tế, quá trình cài đặt đã hoàn tất và mysql có thể truy cập dưới dạng dịch vụ và chúng tôi có thể chạy nó. Nhưng ở bước cuối cùng của quá trình cài đặt (bắt đầu mysqld), chúng tôi bắt gặp lỗi khó chịu này.
maxkoryukov 16/2/2016


1

Tôi gặp phải vấn đề này trên Ubuntu 15.10. Đối với tôi đó không phải là vấn đề về bộ nhớ (tôi có 2GB ram và 18GB trao đổi, trong đó chỉ có khoảng 300 MB được sử dụng tổng cộng).

Trong trường hợp của tôi, dpkgđã tìm kiếm /etc/mysql/conf.d, cái không tồn tại (tuy nhiên /etc/mysql/mysql.conf.dđã có!). Cài đặt lại mysql và tự tạo thư mục đã /etc/mysql/conf.dgiải quyết vấn đề của tôi.

Làm thế nào chính xác điều này đã xảy ra? Tôi không có ý kiến. Tôi gần như không muốn chia sẻ câu trả lời của mình, vì tôi cá rằng giải pháp này là dành riêng cho máy tính của tôi.

Tôi đã giải quyết vấn đề này bằng cách sử dụng tiện ích strace, điều này thật tuyệt vời cho loại điều này, nếu vô cùng dài dòng.

Tôi đã sử dụng nó như thế này:

  • Sau khi nhấn ctrlcnửa chừng apt-get install mysql-server, tôi phải chạy dpkg --configure -ađể hoàn tất việc cài đặt.

  • Tôi chạy strace 2>/tmp/trace dpkg --configure -a. Điều đó làm cho tôi một stracebản ghi tốt đẹp tại /tmp/trace.

  • Tôi nhìn qua nhật ký, đặc biệt là phía dưới, nơi nó thất bại.

  • Tôi nhận thấy nó đã cố gắng truy cập /etc/mysql/conf.dvà nhận được mã lỗi ENOENT, không có tệp hoặc thư mục như vậy .

Đối với bất cứ ai muốn cho điều này đi, làm strace 2>/tmp/trace (command)và grep cho ENOENT. Như tôi đã nói, giải pháp này có thể dành riêng cho máy tính của tôi, nhưng bạn có thể muốn thử.


0

Trong trường hợp của tôi tất cả những gì cần làm là thực hiện một số thay đổi trong my.cnfvà chỉ cần xóa 2 bản ghi tập tin có tên ib_logfile0ib_logfile1, và bắt đầu mysql

service mysql start

Không cần phải cài đặt lại mysql, chỉ cần xóa 2 tệp nhật ký này và khởi động lại máy chủ mysql

Dưới đây là những thay đổi tôi đã thực hiện my.cnf:

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 

Vui lòng thêm một chút vào câu trả lời của bạn để người khác có thể làm theo.
George Udosen
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.