Я хотел бы взглянуть на 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)
Кто-нибудь может увидеть, что пошло не так?
14.04
mysql
amazon-ec2
WebLearner
источник
источник
Ответы:
Ваша проблема выглядит так же, как этот отчет об ошибке . Похоже, сбой при запуске вызван тем, что для конфигурации MySQL 5.6 по умолчанию требуется больше памяти, чем она может получить в вашем микроэкземпляре.
Решением этой ошибки является одно из следующих:
max_connections
переменной MySQLисточник
sudo apt-get install mysql-server-5.6
. Таким образом, очевидно, что микроэкземпляру EC2 не хватает памяти для установки MySQL 5.6 с помощью apt-get!Я столкнулся с той же проблемой, когда я запускаю свой маленький VPS. Проблема вызвана нехваткой памяти. Таким образом, не тратя лишних денег на увеличение памяти, которая вам не нужна, вы можете просто создать файлы подкачки для облегчения установки. Да, подкачка идет медленно, но все, что вам нужно, это сделать установку.
На Ubuntu 14.04 я делаю следующее, чтобы решить проблему:
Создайте файл подкачки 4G:
Измените его разрешение, чтобы только root мог получить доступ и изменить:
Сделайте это подкачкой:
Активация:
Теперь вы можете попробовать установить mysql снова, на этот раз все будет успешно. Просто не забудьте удалить предыдущую неудачную установку, прежде чем сделать это.
источник
Я столкнулся с той же проблемой. Хотя у меня была достаточно большая память 12 Гб, выделенная моей виртуальной машине, но все равно дела шли плохо. Потратив некоторое время на то, что по умолчанию в apt get отсутствуют некоторые пакеты перевода конфигурации и инструментов.
Репозиторий MySQL apt предоставляет простой и удобный способ установки и обновления продуктов MySQL с использованием новейших пакетов программного обеспечения
apt-get
. Вот то, что вы должны следовать:Добавление репозитория MySQL APT Сначала добавьте репозиторий MySQL apt в список программных репозиториев вашей системы. Следуй этим шагам:
Перейдите на страницу загрузки для хранилища MySQL apt по адресу http://dev.mysql.com/downloads/repo/apt/ .
Выберите и загрузите пакет выпуска.
Установите загруженный пакет выпуска с помощью следующей команды, заменив version-specific-package-name на имя загруженного пакета (ему предшествует его путь, если вы не запускаете команду внутри папки, в которой находится пакет):
Обратите внимание, что один и тот же пакет работает на всех поддерживаемых платформах Debian и Ubuntu.
Обновите информацию о пакете из репозитория MySQL APT с помощью следующей команды (этот шаг является обязательным):
Установка MySQL с APT
Установите MySQL с помощью следующей команды:
Это устанавливает пакет для сервера MySQL, а также пакеты для клиента и для общих файлов базы данных.
Во время установки у диалоговых окон есть два запроса: Укажите пароль для пользователя root для вашей установки MySQL.
Сервер MySQL запускается автоматически после установки. - Вы можете проверить состояние сервера MySQL с помощью следующей команды:
Остановите сервер MySQL с помощью следующей команды:
Чтобы перезапустить сервер MySQL, используйте следующую команду:
Я следил за этим http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install . Это сработало гладко, загрузил все пакеты и успешно установил
mysql 5.6
.источник
В моем случае я добавил
к
/etc/mysql/my.cnf
источник
Отключение performance_schema также экономит много памяти. Моя пустая база данных при запуске запускает от 400 до 40 метров:
Документы MySQL: http://dev.mysql.com/doc/refman/5.6/ru/performance-schema.html
источник
Я столкнулся с этой проблемой в 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)
и grep дляENOENT
. Как я уже сказал, это решение, вероятно, специфично для моего компьютера, но вы можете попробовать его.источник
В моем случае все, что мне нужно было сделать, это внести некоторые изменения
my.cnf
и просто удалить 2 файла журнала с именемib_logfile0
andib_logfile1
и запустить mysql.Нет необходимости переустанавливать MySQL, просто удалите эти 2 файла журнала и перезапустите сервер MySQL
Ниже приведены изменения, которые я сделал в
my.cnf
:источник