Почему установка MySQL 5.6 на Ubuntu 14.04 завершилась неудачей? Установка mysql на ubuntu
Почему установка MySQL 5.6 на Ubuntu 14.04 завершилась неудачей? Ubuntu Linux
Я хотел взглянуть на MySQL 5.6 на Ubuntu 14.04 только из любопытства. И на основе этой статьи, безусловно, было похоже, что установка должна быть простой и простой. Поэтому я запустил микросервер AWS EC2 с Ubuntu 14.04 (64-разрядный), зарегистрированный в моем первозданном экземпляре (через PuTTY) и выпустил следующие команды:
(Первые две команды были отчаянными ходами, так как просто запуск apt-get install ранее не работал. Но даже со всеми тремя командами шаг установки все равно не работал.)
В тот момент, когда я ожидал, основываясь на статье, упомянутой выше, увидеть этот результат из последней команды:
Проблема, с которой вы сталкиваетесь, выглядит так же, как и этот отчет об ошибке . Сбой при запуске, по-видимому, связан с тем, что для конфигурации MySQL 5.6 по умолчанию требуется больше памяти, чем в вашем микроустановке.
Решение этой ошибки состоит в том, чтобы выполнить одно из следующих действий:
- Увеличьте объем памяти в экземпляре EC2
- Установите меньшее значение для переменной max_connections MySQL
Я сталкиваюсь с той же проблемой, когда я запускаю свой небольшой VPS. Проблема вызвана небольшой памятью. Поэтому, не тратя лишних денег, чтобы увеличить объем памяти, который вам не нужен, вы можете просто создать файлы подкачки, чтобы облегчить установку. Да, обмен медленный, но все, что вам нужно, это сделать установку.
В Ubuntu 14.04 для решения проблемы я делаю следующее:
Создайте файл подкачки 4G:
sudo fallocate -l 4G /swapfileИзмените его разрешение на доступ и изменение только root:
sudo chmod 600 /swapfileСделайте обмен:
sudo mkswap /swapfileАктивация:
sudo swapon /swapfileТеперь вы можете попробовать снова установить mysql, на этот раз он должен быть успешным. Не забудьте удалить предыдущую неудачную установку, прежде чем вы это сделаете.
Я столкнулся с той же проблемой. Хотя у меня было достаточно большое память 12 ГБ, предоставленная моей виртуальной машине, но все же все было не так, как в вопросе. Проведя некоторое время, выяснилось, что по умолчанию apt get не хватало некоторых пакетов преобразования конфигурации и инструментальных переводов.
Репозиторий MySQL apt предоставляет простой и удобный способ установки и обновления продуктов MySQL с помощью новейших пакетов программного обеспечения с использованием apt-get . Вот что вы должны соблюдать:
-
Добавление репозитория APT MySQL Сначала добавьте репозиторий MySQL apt в список репозитория программного обеспечения вашей системы. Следуй этим шагам:
-
Перейдите на страницу загрузки репозитория MySQL apt по адресу http://dev.mysql.com/downloads/repo/apt/ .
-
Выберите и загрузите пакет выпуска.
-
Установите загруженный пакет выпуска с помощью следующей команды, заменив имя версии-package-name на имя загруженного пакета (которому предшествует его путь, если вы не используете команду внутри папки, где находится пакет):
sudo dpkg -i /PATH/version-specific-package-name.deb
Обратите внимание, что тот же пакет работает на всех поддерживаемых платформах Debian и Ubuntu.
- Во время установки пакета вам будет предложено выбрать версии сервера MySQL и других компонентов (например, MySQL Workbench), которые вы хотите установить. Если вы не знаете, какую версию выбрать, не изменяйте выбранные вами параметры по умолчанию. Вы также можете выбрать none, если вы не хотите, чтобы определенный компонент был установлен. После выбора всех компонентов выберите «ОК», чтобы завершить настройку и установку пакета выпуска.
вы всегда можете изменить свой выбор для версий позже; см. раздел «Выбор основной версии выпуска».
-
-
Установка MySQL с помощью APT
Это устанавливает пакет для сервера MySQL, а также пакеты для клиента и для общих файлов базы данных.
Во время установки в диалоговом окне есть два запроса: укажите пароль для пользователя root для установки MySQL.
- Запуск и остановка сервера 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 .
В моем случае я добавил
innodb_buffer_pool_size = 20Mк /etc/mysql/my.cnf
Я столкнулся с этой проблемой на Ubuntu 15.10. Для меня это не проблема памяти (у меня есть 2GB RAM и 18GB swap, из которых всего около 300MB было использовано в целом).
В моем случае 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 (command) и 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 = 7200ubuntu.fliplinux.com
Установите MySql 5.6 на Ubuntu 16.04 Ubuntu Linux
Я использовал следующий подход:
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe' sudo apt-get update sudo apt install mysql-server-5.6 * see note below if you get an error sudo apt install mysql-client-5.6Похоже, мне удалось это сделать.
-
В Software & Updates / Other Software добавлен репозиторий 14.04:
deb http://archive.ubuntu.com/ubuntu trusty main -
Установленный клиент и сервер mysql:
sudo apt install mysql-server-5.6 sudo apt install mysql-client-5.6
Обновление: перед установкой 5.6 убедитесь, что других пакетов mysql нет:
dpkg -l | grep mysql dpkg -l | grep mysql – возвращает список пакетов mysql.
Используйте apt-get purge <package name> чтобы очистить их.
Источник: обновление 16.04 сломалось mysql-server
Я столкнулся с одной и той же проблемой, и я выполнил следующие простые шаги:
sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa:ondrej/mysql-5.6 $ sudo apt-get update $ sudo apt-get install mysql-server-5.6Решение работало для меня Cheers !!
dpkg --force-depends -P `dpkg -l |awk '/mysql/{print $2}'` rm -r /etc/mysql/ apt-get install mysql-server mysql-clientПоэтому я решил установить его с помощью Aptitude, который устанавливает пакет и исправляет все зависимости.
Если у вас нет способности, вы можете получить его так: sudo apt-get install aptitude
Сначала вам нужно удалить существующий mysql. Затем вам нужно установить пакет, который вы хотите.
sudo aptitude install mysql-server-5.6Способность дает вам много вариантов, что делать. Первые варианты – сохранить фактический пакет. Поэтому нажмите (N) o, пока не найдете вариант, который говорит о понижении рейтинга следующих пакетов:
libmysqlclient20 [5.7.14-1ubuntu16.04 (<NULL>, now) -> 5.7.13-0ubuntu0.16 mysql-common [5.7.14-1ubuntu16.04 (<NULL>, now) -> 5.6.30-1+deb.sury.orgзатем нажмите (Y) es, и aptitude собирается установить mysql-server-5.6. Вот вариант, который вы должны принять:
Если после этого система не сможет подключиться к серверу mysql, вам необходимо перезагрузить компьютер.
Разработчики MySQL предоставляют Xenial пакеты MySQL 5.6 в своих собственных хранилищах , и поэтому это должно быть предпочтительнее установки официальных пакетов Ubuntu Trusty , поскольку в целом лучше устанавливать пакеты, созданные для вашей версии Ubuntu.
Если у вас уже есть пакеты MySQL Server, вы должны сначала удалить их; просто удалите все, что показано dpkg -l | grep mysql-server dpkg -l | grep mysql-server .
Просто загрузите и установите DEB-пакет mysql-apt-config в предыдущей ссылке. Во время установки он спросит, какую версию вы хотите, поэтому вы можете выбрать 5.6. После завершения установки установки, sudo apt update && sudo apt install mysql-server-5.6 установит MySQL Server 5.6.
ubuntu.fliplinux.com
Установка Mysql на Debian/Ubuntu/Mint | Я и программист
MySQL – свободная реляционная система управления базами данных. Она была разработана командой Монти Видениуса, затем приобретена компанией Sun. В настоящее время принадлежит компании Oracle. MySQL портирована на огромное количество операционных систем, таких как AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS и др., проста в установке и использовании, имеет интерфейсы ко всем распространенным языкам программирование. Это делает ее самой распространенной свободной субд в мире. MySQL входит в распространенный в веб-разработке LAMP стек.
Давайте установим MySQL
Для начала нужно обновить данные в системе управления пакетами, чтобы убедиться, что мы устанавливаем новую версию mysql.
sudo apt-get update sudo apt-get dist-upgrade
sudo apt-get update sudo apt-get dist-upgrade |
Далее, нам нужно установить mysql-сервер и клиент.
sudo apt-get install mysql-server mysql-client
sudo apt-get install mysql-server mysql-client |
Установщик может попросить у вас ввести пароль для созданного суперпользователя (root) MySQL.
Если этого не произошло, то пароль суперпользователя нужно задать вручную.
sudo mysqladmin -u root -h localhost password 'mypassword'
sudo mysqladmin -u root -h localhost password 'mypassword' |
Где ‘mypassword’ – ваш пароль.
Что убедится что сервер запустился, попробуем подключиться к нему:
Если все прошло хорошо, вы увидите приветствие командной строки MySQL:
Выйти из нее можно командой:
Для запуска сервера Mysql используется:
Для перезагрузки:
sudo service mysql restart
sudo service mysql restart |
Для отключения:
Конфигурация mysql по умолчанию находится по адресу:
А физически базы данных хранятся в
Этого достаточно для начала работы. Если вы взаимодействуете с базой данных через язык программирования, то необходимо установить специальный драйвер для вашего языка. Например, для php
sudo apt-get install php5-mysql
sudo apt-get install php5-mysql |
или python:
sudo apt-get install mysql-python
sudo apt-get install mysql-python |
Помимо командной строки существуют редакторы баз данных с графическим интерфейсом. Например, phpmyadmin, имеющий веб-интерфейс или декстопные приложения dbeaver и mysql-workbench и другие.
Поделиться:
blog.stroganov.pro
Установка и настройка Apache, PHP, MySQL в Ubuntu. Часть 2
Итак, уважаемый читатель, сегодня мы займемся непосредственно установкой и настройкой Apache + PHP + MySQL в Ubuntu.
Первую часть с теоретическими основами можно найти здесь.
Установка Apache
В Терминале необходимо выполнить команду:
sudo apt-get install apache2 libapache-mod-auth-mysql
С предназначением команды sudo мы знакомились в первой части данного руководства.
Команда apt-get install запускает менеджер пакетов в режиме установки нового ПО.
Через пробел следуют названия устанавливаемого ПО: apache2 libapache-mod-auth-mysql — самого Apache и дополнительного модуля.
Вот и все, Apache установлен. За это я и люблю Ubuntu, не надо искать и скачивать дистрибутивы, процесс приятно автоматизирован.
Устанавливаем PHP
Все, что необходимо для работы PHP можно установить одной командой:
sudo apt-get install php5-common php5 libapache2-mod-php5 php5-cli php5-cgi php5-mysql
Устанавливаем MySQL
Команда для установки:
sudo apt-get install mysql-server mysql-client
После установки MySQL потребует задать пароль пользователя root для подключения к базам данных.
На этом установка всех необходимых компонентов закончена и мы переходим к настройке.
Настройка сервера
Для начала создадим каталог на жестком диске, где будут располагаться файлы сайтов. Например, пусть это будет папка /home/imya_polzovatelya/sites.
В директории sites я буду располагать поддиректории с файлами отдельных сайтов. Каждая поддиректория в sites будет представлять из себя хранилище файлов отдельного сайта.
В качестве примера настроим работу тестового сайта.
Для этого в каталоге sites я создаю каталог test, содержащий две поддиректории: logs — для хранения логов и www — для хранения файлов сайта.
Пару слов о том, что же такое логи. В ОС семейства Linux принято писать подробные и человекопонятные отчеты об ошибках. В случае возникновения непредвиденной ситуации Apache запишет в папку logs отчет из которого вы сможете понять, что именно пошло не так. Советую не забывать о полезности чтения логов.
На скрине представлен внешний вид замечательного файлового менеджера ОС семейства Linux под названием Midnight Commander. Запустить его можно набрав в терминале комаду mc.
Теперь в папке www свежесозданного хранилища файлов сайта test необходимо создать текстовый файл index.php. В Midnight Commander для создания текстового файла можно воспользоваться комбинацией клавиш Shift + F4.
В файле index.php, для проверки, напишем следующие сроки:
<p>Привет, Мир!</p>
<?php echo phpinfo() ?>
Первая строка приведенного выше кода выводит на экран статический текст Привет, Мир! Вторая строка предназначена для проверки работоспособности PHP: если все в порядке функция phpinfo() выведет таблицу с информацией о версии PHP, установленной на сервере.
Настройка Apache
При работе в операционной системе на базе Linux необходимо помнить о замечательной особенности: в Linux существует и свято соблюдается понятие прав доступа и дальнейшее повествования бессмысленно без рассмотрения этой важной темы.
Права доступа
У каталогов и файлов ОС, построенной на базе Linux, существует три степени доступа для трех категорий пользователей.
Сначала познакомимся с существующими категориями пользователей.
1. Категория владелец файла или каталога. В нашем случае, при создании каталога sites, test, www, logs и файла index.php, мы действовали от имени пользователя, под которым вошли в операционную систему.
Увидеть имя пользователя, под которым вы сейчас работаете, можно в окне Терминала.
На приведенном скриншоте имя пользователя olga.
Владельцем, созданных в сеансе активности пользователя olga каталогов и файлов, будет назначен пользователь olga.
Запустив файловый менеджер Midnight Commander в режиме суперпользователя командой sudo mc, вы получите доступ к работе со служебными файлами и каталогами. Однако, владельцем созданных файлов и каталогов в режиме суперпользователя будет назначен уже не пользователь olga, а суперпользователь root.
Работа в режиме суперпользователя идентифицируется знаком # в конце командной строки, в отличии от знака $ при работе в обычном режиме.
2. Следующая категория — группа владельца. Дело в том, что все пользователи ОС Linux распределены по группам. Рассматриваемая категория доступа относится к пользователям, входящим в туже группу, что и владелец.
3. Третья категория носит название все остальные. В данную категорию входят пользователи не попавшие в первую и вторую категории.
Для каждой из вышеописанных категорий пользователей может быть назначен свой уровень доступа к каталогам и файлам. Увидеть и отредактировать его можно, кликнув правой мышкой на папке или файле и выбрав пункт Свойства.
Но гораздо приятнее, лично для меня, воспользоваться Терминалом и посмотреть информацию о правах доступа посредством команды
ls -la put`_k_papke_ili_failu.
Выделенная на рисунке строка предоставляет полную информацию о правах доступа к папке test, которая расположена в каталоге /home/olga/sites/.
Расшифрую выделенную на скриншоте строку:
первая буква d информирует нам о том, что test — это директория;
rwxr-xr-x — обозначение степени доступа по три символа для каждой категории пользователей.
Теперь начинаем разбираться со степенями доступа.
В случае анализа прав доступа к директории первые три символа приведенной буквеннодефисной последовательности (rwx) характеризуют степень доступа категории владелец и означают следующее: категория владелец имеет право просматривать содержимое директории test (символ r), создавать новые файлы и подкаталоги в данной директории (w), переходить в директорию test (x).
В случае анализа прав доступа для файла: r — чтение файла, w — запись в файл, x — запуск файла.
Следующие три символа r-x характеризуют права одногруппников владельца на данную директорию. Символы r-x означают, что читать и переходить в данный каталог одногруппники владельца могут, но писать туда им запрещено, т. к. вместо w стоит прочерк.
Для всех остальных пользователей назначены точно такие же права, что и для одногруппников.
Теперь внимание! С данными файлами будет работать программа Apache. Возникает законный вопрос — от имени какого пользователя работает Apache и какие права нужно установить на файлы и директории сайта, чтобы было безопасно и все работало.
Ответ на этот вопрос можно найти в файле конфигурации Apache: /etc/apache2/apache2.conf. Параметры User и Group задают пользователя и группу, от имени которых будет действовать Apache.
Значение переменных ${APACHE_RUN_USER} и ${APACHE_RUN_GROUP} указаны в файле /etc/apache2/envvars:
Из скриншота видно, что Apache будет работать от имени пользователя www-data, состоящего в группе www-data.
Для нашего сайта test, владельцем папок и фалов которого является пользователь olga, www-data будет относится к третей категории пользователей, а именно все остальные.
Но позвольте, ведь частенько возникает необходимость давать полный доступ (rwx) пользователю, от имени которого работает Apache, к файлам и папкам сайта. А значит нам потребуется выдать полный доступ третей категории пользователей (всем подряд), чего делать совершенно не хочется из соображений безопасности.
Поэтому я предлагаю пойти другим путем. Добавим пользователя www-data к группе владельца файлов и папок сайта.
Для начала проверим, какая группа у владельца сайта. Воспользуемся командой ls -la:
Как видно из скриншота, группа владельца каталога с файлами сайта носит название olga.
Остается добавить пользователя www-data в группу olga. Сделать это можно командой:
sudo usermod -a -G olga www-data
Воспользуемся командой для просмотра групп пользователя, чтобы убедиться в успехе проделанной операции:
groups www-data
Теперь необходимо задать права для каталогов и файлов нашего сайта исходя из следующих соображений:
Владелец должен иметь возможность полного доступа к файлам и каталогам сайта (rwx). Действительно, мне же нужно создавать новые файлы сайта и редактировать существующие без всяких на то ограничений. Напомню, в ОС я работаю от имени пользователя olga.
Одногруппники, одним из которых является пользователь www-data, от чьего имени работает Apache, должны иметь возможность просматривать содержимое каталогов и файлов, а также запускать файлы (r-x). Однако, нужно иметь ввиду, что для некоторых папок сайта (например, тех куда Apache записывает новые файлы) требуются полные права (rwx).
Категории пользователей все остальные можно вообще не давать никаких прав (---).
Реализуем задуманное следующими командами:
sudo chmod -R 750 /home/olga/sites/
Данная команда дает полный доступ (rwx) для владельца директории sites (7), доступ на чтение и запуск (r-x) одногруппникам владельца (5) и запрещает доступ всем остальным (0 в конце).
Ключ -R говорит о том, что выполнить операцию смены прав доступа нужно рекурсивно, т. е. для всех файлов и подкаталогов внутри директории sites и для нее самой.
С правами доступа почти все 🙂
Займемся непосредственно настройкой Apache.
В Ubuntu существует некая особенность в настройке нового сайта. Конфигурационный файл для каждого из сайтов, запускаемых с нашего компьютера, должен быть свой. Хранятся они в папке /etc/apache2/sites-available.
Я предлагаю создать файл шаблонной конфигурации, на основе которого будут создаваться конфиги всех остальных сайтов (файл template на скриншоте выше).
Содержимое файла template описывает правила работы Apache с одним конкретным сайтов (в случае примера это сайт test):
<VirtualHost *:80>ServerName test# ServerAlias example.comServerAdmin [email protected]
DocumentRoot /home/olga/sites/test/www<Directory /home/olga/sites/test/www>Options -Indexes FollowSymLinks MultiViewsAllowOverride AllOrder allow,denyallow from all</Directory>
ErrorLog /home//olga/sites/test/logs/error.log
LogLevel warn
ServerSignature On
</VirtualHost>
В первой строке указывается доменное имя, по которому данный сайт будет доступен.
Вторая строка — это синоним доменного имени, по которому осуществляется доступ к этому же сайту. В моем случае она закомментирована символом # и в настройках не участвует.
Ниже указывается адрес эл. почты администратора.
Далее мы переходим к настройкам правил работы Apache с файлами сайта, расположенными в каталоге /home/olga/sites/test/www
Строка с директивами Options -Indexes FollowSymLinks MultiViews задает опции работы Apache с указанной директорией:
-Indexes — запрещает показ в бразуере содержимого каталогов в случае отсутствия запрашиваемого файла.
FollowSymLinks MultiViews — разрешения следовать по символическим ссылкам и разрешает поддержку многих языков (пусть будет, хуже не станет).
AllowOverride All разрешает использовать файлы дополнительной конфигурации .htaccess.
Следующий далее набор директив разрешает доступ к файлам сайта.
ErrorLog /home/olga/sites/test/logs/error.log — задает путь к файлу логов ошибок.
Более подробную информацию по директивам Apache можно получить здесь (англ.).
Скопируем содержимое файла шаблонной конфигурации и сохраним под именем нашего сайта, чтобы не путаться (в примере сайт называется test).
Для выполнения описанного действия удобно использовать Midnight Commander, запустив его в режиме суперпользователя, т. к. мы будем заниматься редактированием служебных файлов (команда sudo mc).
Копирование содержимого одного файла в другой осуществляется комбинацией клавиш Shif+F5.
Далее необходимо воспользоваться командой подключения файла конфигурации хоста test:
a2ensite test
Данная команда создаст ссылку на файл конфигурации
Кстати, отключить надоевший хост можно командой:
a2dissite test
Теперь нам осталось выполнить всего два действия:
Перезапустить Apache командой /etc/init.d/apache2 restart и добавить название нашего свежеиспеченного хоста в файл /etc/hosts и перенаправление на IP-адрес 127.0.0.1 (об этом мы подробно говорили в первой части руководства).
После перезапуска Apache в каталоге /home/olga/sites/test/logs/ создастся файл лога ошибок error.log. Владельцем данного файла будет являться суперпользователь root. Поэтому, чтобы у нас была возможность просматривать его содержимое нужно расширить права доступа третей категории пользователей разрешив им чтение данного файла (r—), ведь я работаю от имени пользователя olga и файлы пользователя root без соответствующего разрешения прочесть не смогу:
sudo chmod -R 774 /home/olga/sites/test/logs/error.log
774 – означает:
- root может читать, писать и запускать;
- одногруппники могут читать, писать и запускать;
- все остальные – только читать.
Вот и все, теперь можно запускать браузер, вводить URL http://test и наблюдать содержимое файла index.php, обработанного Apache.
P.S.: для работы большинства современных сайтов требуется модуль mod_rewrite. По умолчанию он не подключен. Подключить его можно командой:
a2enmod rewrite
По аналогии можно подключить и другие недостающие модули.
С уважением, Андрей Морковин.
У поста есть спонсор (как им стать):
Спонсор предлагает услуги по автоматизации процессов предприятия. Здесь очень важно не промахнуться с выбором исполнителя. Ознакомьтесь с тем, что же такое автоматизация процессов предприятия по мнению спонсора статьи.
www.sdelaysite.com
Ошибка установки mySql на Ubuntu 16.04 Ubuntu Linux
Этот ответ также в ответ на обновление версии 16.04 сломал mysql-сервер, но я не могу ответить, поскольку администратор заблокировал его до 10 репутации.
Ошибка APT возникает при обновлении Ubuntu до 16.04 (xenial) и Mysql с 5.5 до 5.7. Из-за некоторых проблем с упаковкой обновление APT заканчивается в подвешенном состоянии, поскольку сценарий после установки Mysql-server-5.7 не завершается.
Чтобы решить эту проблему, выполните следующие действия:
- apt purge mysql-server и apt autoremove для очистки всех следов старого MYSQL. Данные базы данных не будут уничтожены.
- Удалите все из каталога /etc/mysql .
- Убедитесь, что старые пакеты Mysql не установлены: dpkg -l | grep mysql dpkg -l | grep mysql
- apt install mysql-server для установки
Если эти шаги завершатся той же неполной установкой, попробуйте следующий шаг:
- Tail -n 20 /var/log/mysql/error.log
- Ошибки могут быть a. неверный пароль для debian-sys-maint b. нет памяти для Innodb
Решите 2a: вам необходимо обновить системные таблицы Mysql с 5,5 до 5,7
Измените my.cnf, чтобы включить в «[mysqld]» строку «skip-grant-tables», service mysql start и mysql_upgrade --force -u root -p
Решите 2b: у вас недостаточно памяти для Mysql Innodb пула (вы на микроразмерном сервере?)
Измените my.cnf, чтобы включить в '[mysqld] строку innodb_buffer_pool_size = 20M
пул innodb по умолчанию – 128M, который является жестким в 512M VM
Чтобы очистить APT-ошибку, повторите установку post
dpkg --configure -aРешение, которое я в конечном итоге пришло, полностью удалил mysql и переустановил. Хотя я пытался удалить и переустановить один раз безуспешно (таким образом, я задал этот вопрос). Я пробовал более тщательную деинсталляцию после поиска совета на этой странице: Удалите MySQL полностью
Следуя инструкциям по удалению и переустановке, проблема решена.
Это сработало для меня:
sudo apt-get remove --purge mysql*Эта команда спросит вас, хотите ли вы УДАЛИТЬ свои базы данных из /var/lib/mysql а также удалите все остальные экземпляры mysql!
Поэтому сначала сделайте РЕЗЕРВНОЕ ЗАДАНИЕ своих баз данных!
После этого я смогу установить базу данных, выполнив команду:
sudo apt-get install mysql-serverСначала вы удалите все пакеты mysql-сервера:
sudo rm -rf /var/lib/mysqlЗатем установите:
sudo apt-get install lamp-server^Или вы можете сделать:
sudo apt-get install mysql-serverПопробуйте удалить все пакеты и файлы, а затем повторно установите «mysql-server»,
sudo apt-get remove --purge mysql-\* sudo rm -rf /var/lib/mysql sudo apt-get install mysql-serverubuntu.fliplinux.com
Установка и настройка MysqlRouter на debian/ubuntu
Что такое mysqlrouterКак мы види из названия, mysqlrouter это решения для балансировки mysql баз данных. Т.е. благодаря нему можно создать отказоустойчивое решения, которое будет бегать по базам, и, в зависимости от конфига, записывать-читать, только читать данные из баз данных. По данному решению мало информации. Решил написать малый туториал по сборке и быстрому запуску.
sudo apt-get install build-essential cmake doxygen libpolarssl-dev libnl-utils libmysqlclient-dev checkinstall
Сборка и установка mysqlrouter
wget https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-2.0.3.tar.gz tar -xfv mysql-router-2.0.3.tar.gz cd mysql-router-2.0.3 mkdir build cd build cmake .. make sudo checkinstall
wget https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-2.0.3.tar.gz tar -xfv mysql-router-2.0.3.tar.gz cd mysql-router-2.0.3 mkdir build cd build cmake .. make sudo checkinstall |
Установка законченаПроверяем версию
human@router-2-74:~$ mysqlrouter —versionMySQL Router v2.0.3 on Linux (64-bit) (GPL community edition)
Создаем файл конфиг в папке /etc/mysqlsudo nano /etc/mssql/mysqlrouter.ini
Вставляем туда данный конфиг:
[DEFAULT] logging_folder = /var/log runtime_folder = /var/run plugin_folder = /usr/local/lib/mysqlrouter config_folder = /etc/mysql [logger] level = info [keepalive] interval = 60 client_connect_timeout = 9 [routing:basic_failover] bind_address = 0.0.0.0:7001 mode = read-write destinations = mysql-1-81 wait_timeout = 100 [routing:reporting] bind_address = 0.0.0.0:7002 mode = read-only destinations = mysql-1-81,mysql-1-82
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [DEFAULT] logging_folder = /var/log runtime_folder = /var/run plugin_folder = /usr/local/lib/mysqlrouter config_folder = /etc/mysql
[logger] level = info
[keepalive] interval = 60 client_connect_timeout = 9
[routing:basic_failover] bind_address = 0.0.0.0:7001 mode = read-write destinations = mysql-1-81 wait_timeout = 100
[routing:reporting] bind_address = 0.0.0.0:7002 mode = read-only destinations = mysql-1-81,mysql-1-82 |
Гдеbind_address— адрес и порт на котором будет доступен mysql (в кофниге указано 0.0.0.0 — значит будет доступен из сети, так же мы видим 2 порта 7001 и 7002, это значит что, что на ip машины с mysqlrouter по адресу, ну, допустим 10.4.1.74, и порте 7001 будет доступен mysql-1-81, а на 10.4.1.74:7002 — будет балансировать 2 сервера mysql-1-81,mysql-1-82.destination — ноды на которых крутится mysql , я прописал их в хостах.(/etc/hosts)
Запуск осуществляется из консоли
sudo mysqlrouter -c /etc/mysql/mysqlrouter.ini— запуск mysqlrouter с файлом конфига /etc/mysql/mysqlrouter.ini, т.е. вы можете запускать и тестировать mysqlrouter с другим конфигом, просто поменяв файл конфига.
Для подключения к базе данных через порт с сервера mysqlrouter используйте команду:mysql -uroot —port 7001 —protocol tcp
itc-life.ru