Я хотел получить взгляд на MySQL 5.6 на Ubuntu 14.04 только из любопытства. И на основе этой статьи, конечно, было похоже, что установка должна быть простой и простой. Таким образом, я разжег AWS EC2 микро сервер под управлением (64-разрядная) Ubuntu 14.04, вошел в мой нетронутый экземпляр (через 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)
Кто-либо может видеть то, что пошло не так, как надо?
Проблема, с которой вы столкнулись, выглядит так же, как в этом отчете об ошибке . Сбой при запуске, по-видимому, связан с тем, что конфигурация MySQL 5.6 по умолчанию требует больше памяти, чем она может получить в вашем микро-экземпляре.
Решение ошибки, по-видимому, заключается в выполнении одного из следующих действий:
max_connections
Я столкнулся с той же проблемой, когда запускал свой маленький VPS. Проблема вызвана нехваткой памяти. Поэтому, не тратя лишних денег на увеличение памяти, которая вам не нужна, вы можете просто создать файлы подкачки для облегчения установки. Да, своп выполняется медленно, но все, что вам нужно, это завершить установку.
В Ubuntu 14.04 я делаю следующее для решения проблемы:
Создаю файл подкачки 4G:
sudo fallocate -l 4G /swapfile
Измените его разрешение, чтобы только root мог получить доступ и изменить:
sudo chmod 600 /swapfile
Сделать свопинг:
sudo mkswap /swapfile
Активировать :
sudo swapon /swapfile
Теперь вы можете попробовать установить mysql еще раз, на этот раз все должно быть успешно. Просто не забудьте перед этим удалить предыдущую неудачную установку.
В моем случае я добавил
innodb_buffer_pool_size = 20M
в /etc/mysql/my.cnf
Я столкнулся с той же проблемой. Хотя у меня было достаточно большой памяти 12 ГБ, предоставленной моей виртуальной машине, но все равно что-то не так. Потратив некоторое время, обнаружил, что в apt get по умолчанию отсутствуют некоторые пакеты перевода конфигурации и трансляции инструментов.
Репозиторий MySQL apt предоставляет простой и удобный способ установки и обновления продуктов MySQL с использованием последних пакетов программного обеспечения с использованием apt -get
.
Вот что вам нужно сделать:
Добавление репозитория MySQL APT Сначала добавьте репозиторий MySQL apt в список репозиториев программного обеспечения вашей системы. Выполните следующие действия:
Перейдите на страницу загрузки репозитория MySQL apt по адресу http://dev.mysql.com/downloads/repo/apt/ .
Выберите и загрузите пакет выпуска .
Установите загруженный пакет выпуска с помощью следующей команды, заменив имя-версии-пакета именем загруженного пакета (которому предшествует путь к нему, если вы не запускаете команду внутри папки, в которой находится пакет) :
sudo dpkg -i /PATH/version-specific-package-name.deb
Обратите внимание, что один и тот же пакет работает на всех поддерживаемых платформах Debian и Ubuntu.
вы всегда можете изменить свой выбор для более поздних версий;
инструкции см. в разделе Выбор основной версии выпуска.
Обновите информацию о пакете из репозитория MySQL APT с помощью следующей команды (этот шаг является обязательным):
sudo apt-get update
Установка MySQL с APT
Установите MySQL с помощью следующей команды:
sudo apt-get install mysql-server
Это устанавливает пакет для сервера MySQL, а также пакеты для клиента и общие файлы базы данных.
Во время установки диалоговые окна выдают два запроса: Введите пароль для пользователя root. для вашей установки 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
.
Отключение performance_schema также экономит много памяти. Моя пустая база данных увеличивается с 400 до 40 метров при запуске:
performance_schema=0
MySQL Docs: http://dev.mysql.com/doc/refman/5.6/en/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
, которая отлично подходит для такого рода вещей, если невероятно многословен.
Я использовал его так:
После нажатия ctrl c на полпути 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 (команда)
и grep для ENOENT
. Как я уже сказал, это решение, вероятно, специфично для моего компьютера, но вы можете попробовать его.
В моем случае все, что мне нужно было сделать был внесен некоторые изменения в 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