Чому не вдалося встановити MySQL 5.6 на Ubuntu 14.04?


30

Я хотів подивитися цікавість на MySQL 5.6 на Ubuntu 14.04. І виходячи з цієї статті, безумовно, виглядало, що установка повинна бути простою і простою. Тож я запустив мікросервер AWS EC2 під управлінням Ubuntu 14.04 (64-розрядний), увійшов у свій незайманий екземпляр (через PuTTY) і видав такі команди:

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

(Перші дві команди - це відчайдушні кроки, оскільки просто запуск у apt-get installпоодинці раніше не працював. Але навіть з усіма трьома командами крок встановлення все ще не працював.)

У той момент, коли я очікував, виходячи з статті, на яку посилався вище, побачити цей результат із остаточної команди:

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) ...  

Я отримав це замість:

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)

Хтось може бачити, що пішло не так?


1
що говорить журнал? cat /var/log/mysql.err
Paté

Відповіді:


22

Проблема, яка виникає у вас, схожа на цей звіт про помилку . Невдача запуску, мабуть, пов’язана з тим, що конфігурація MySQL 5.6 за замовчуванням потребує більше пам'яті, ніж вона може отримати у вашому мікроекземплярі.

Здається, що помилка полягає в тому, щоб зробити одне з наступних дій:

  • Збільште об'єм пам'яті у вашому екземплярі EC2
  • Встановіть меншу величину для max_connectionsзмінної MySQL

1
Так, ця проблема є ТОЧНО помилкою, показаною у звіті про помилку. Спасибі! Поки я спробував запропонувати швидке виправлення, яке було гарантувати існування /etc/apparmor.d/local/usr.sbin.mysqld, і, на жаль, цього не зробило. Тому зараз я спробую встановити більше пам'яті.
WebLearner

1
Для наступної спроби, замість використання екземпляра EC2, я створив віртуальну машину Ubuntu 14.04 з 2 Гб пам'яті за допомогою Virtualbox Oracle VM, і в цьому середовищі установка MySQL 5.6 проплила без зачеплення sudo apt-get install mysql-server-5.6. Отож, безумовно, здається, що мікро екземпляру EC2 не вистачає пам'яті для встановлення MySQL 5.6 за допомогою apt-get!
WebLearner

1
До звіту про помилку було додано додатковий коментар, який пропонував зменшити max_connections MySQL до встановлення MySQL 5.6. Я взяв цю пораду і додав .cnf файл до /etc/mysql/conf.d, який містив два рядки: "[mysqld]" та "max_connections = 20". Із цим файлом пройшла моя установка MySQL на свіжому мікросхемі EC2. (Згідно з документацією, значення за замовчуванням для max_connections становить 151. Встановлення його на 20 - це, мабуть, надзвичайно. Але принаймні це показує, що можна встановити MySQL.)
WebLearner

Для отримання додаткової інформації: я перевіряю /var/lib/dpkg/info/mysql-server-5.6.postinst, і я виявив, що ви можете запустити цей скрипт для відтворення точних кроків, які не вдається
shakaran

Він працює над моїм бродягом, я встановив 1G ОЗУ і виправив його. Дякую тобі. : D
Чу-Сян Лай

24

Я зіткнувся з тією ж проблемою, коли запускаю свою маленьку VPS. Проблема викликана малою пам’яттю. Таким чином, не витрачаючи зайвих грошей на збільшення пам'яті, яка вам не потрібна, ви можете просто створити файли swap, щоб допомогти встановленню. Так, заміна відбувається повільно, але все, що вам потрібно, - це зробити встановлення.

У Ubuntu 14.04 я роблю наступне для вирішення проблеми:

Створіть файл свопу 4G:

sudo fallocate -l 4G /swapfile

Змінити його дозвіл, щоб тільки root міг отримати доступ та зміни:

sudo chmod 600 /swapfile

Зробіть своп:

sudo mkswap /swapfile

Активувати:

sudo swapon /swapfile

Тепер ви можете спробувати встановити mysql знову, це має успіх цього разу. Просто пам’ятайте, щоб видалити попередню невдалу установку, перш ніж це зробити.


Так, ідеальна відповідь. Абсолютно приголомшливий.
Врен

3

Я зіткнувся з тією ж проблемою. Хоча у мене було достатньо великої пам’яті 12Gb, наданої моєму VM, але все-таки справи провалювалися, як і питання. Витративши деякий час, виявив, що за замовчуванням apt get бракує деяких пакетів перекладу конфігурації та перекладу інструментів.

Аптечний сховище MySQL пропонує простий та зручний спосіб встановлення та оновлення продуктів MySQL за допомогою останніх програмних пакетів apt-get. Ось що вам потрібно дотримуватися:

  1. Додавання сховища MySQL APT Спочатку додайте сховище MySQL apt до списку сховищ програмного забезпечення вашої системи. Виконайте такі дії:

    • Перейдіть на сторінку завантаження apt-сховища MySQL за адресою http://dev.mysql.com/downloads/repo/apt/ .

    • Виберіть і скачайте пакет випуску.

    • Встановіть завантажений пакет випуску за допомогою наступної команди, замінивши назву пакета-версії на ім'я завантаженого пакета (передуючи його шляху, якщо ви не виконуєте команду всередині папки, де знаходиться пакет):

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

    Зауважте, що один і той же пакет працює на всіх підтримуваних платформах Debian і Ubuntu.

    • Під час установки пакета вам буде запропоновано вибрати версії сервера MySQL та інших компонентів (наприклад, MySQL Workbench), які ви хочете встановити. Якщо ви не впевнені, яку версію обрати, не змінюйте вибрані для вас параметри за замовчуванням. Ви також можете вибрати жоден, якщо ви не хочете встановлювати певний компонент. Зробивши вибір для всіх компонентів, оберіть ОК, щоб закінчити конфігурацію та встановлення пакета випуску.

    ви завжди можете змінити свій вибір для версій пізніше;
    див. розділ Вибір основної версії для отримання інструкцій.

    • Оновіть інформацію про пакет із сховища MySQL APT за допомогою наступної команди (цей крок є обов’язковим):

      sudo apt-get update
      
  2. Встановлення MySQL за допомогою APT

    • Встановіть MySQL за допомогою наступної команди:

      sudo apt-get install mysql-server
      

При цьому встановлюється пакет для сервера MySQL, а також пакети для клієнта та загальних файлів бази даних.

Під час встановлення діалогових вікон є два запити: Введіть пароль для кореневого користувача для вашої установки MySQL.

  1. Запуск та зупинка сервера MySQL

Сервер MySQL запускається автоматично після встановлення. - Ви можете перевірити стан сервера MySQL за допомогою наступної команди:

sudo service mysql status
  • Зупиніть сервер MySQL наступною командою:

    sudo service mysql stop
    
  • Щоб перезапустити сервер MySQL, використовуйте таку команду:

    sudo service mysql start
    

Я дотримувався цього http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install . Це працювало безперебійно, завантажували всі пакети та успішно встановлювались mysql 5.6.


Дякую, Девід. Це має сенс. Я змінив відповідь на більш детальні кроки. Спасибі.
Ritesh

+1 для покращеної відповіді.
Девід Фоерстер

востаннє я був ... це справді я? :)
стрімкий

2

У моєму випадку я додав

innodb_buffer_pool_size = 20M

до /etc/mysql/my.cnf


1
У користувача виникають проблеми з встановленням MySQL, а не його використанням.

Дякую, я прочитав питання) У мене з’явилася та сама проблема під час встановлення. Насправді установка закінчена і mysql вже доступний як сервіс, і ми могли б її запустити. Але на останньому кроці процесу встановлення (запуск mysqld) ми виявляємо цю докучливу помилку.
maxkoryukov


1

Я зіткнувся з цим питанням на Ubuntu 15.10. Для мене це не питання пам’яті (у мене є 2 ГБ оперативної пам’яті та 18 Гб свопу, з яких всього було використано близько 300 МБ).

У моєму випадку dpkgшукали /etc/mysql/conf.d, чого не існувало (проте /etc/mysql/mysql.conf.dзробили!). Перевстановлення mysql та створення папки вручну /etc/mysql/conf.dвирішили мою проблему.

Як саме це сталося? Я поняття не маю. Я майже не хотів ділитися своєю відповіддю, оскільки, думаю, це рішення характерне для мого комп'ютера.

Я вирішив це питання за допомогою утиліти strace, яка є фантастичною для подібних речей, якщо неймовірно багатослівна.

Я використовував це так:

  • Після натискання ctrlcна півдорозі apt-get install mysql-serverмені довелося бігти, dpkg --configure -aщоб закінчити інсталяцію.

  • Я біг strace 2>/tmp/trace dpkg --configure -a. Це зробило мені гарний straceжурнал /tmp/trace.

  • Я переглянув колоду, особливо внизу, де не вийшов.

  • Я помітив, що він намагався отримати доступ /etc/mysql/conf.d, і я отримав код помилки ENOENT, такого файлу чи каталогу немає .

Для всіх, хто хоче це впоратися, зробіть strace 2>/tmp/trace (command)і похвалитесь ENOENT. Як я вже говорив, це рішення, мабуть, є специфічним для мого комп’ютера, але ви, можливо, захочете його спробувати.


0

У моєму випадку все, що мені потрібно було зробити, - це внести деякі зміни my.cnfі просто видалити 2 файли журналів з ім'ям ib_logfile0та ib_logfile1і запустити mysql

service mysql start

Не потрібно перевстановлювати mysql, просто видаліть ці 2 файли журналу та перезапустіть сервер mysql

Нижче внесені зміни my.cnf:

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 

Будь ласка, додайте до своєї відповіді трохи більше, щоб інші могли слідувати.
Джордж Удосен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.