Смена пароля root mysql в linux

Для RedHat Linux (Fedora Core/Cent OS): 1. Останавливаем MySQL:

2. Запускаем mysql в safe-mode:

3. Запускаем клиента от root:

4. В приглашении mysql> выполняем запрос на смену пароля, вместо «NewPassWord» укажите новый пароль:

5. Перезагружаем привилегии

6. Выходим из MYSQL:

7. Перезагружаем MySQL:

На этом все — пароль root в MySQL изменен. Смена пароля root в MySQL для Debian / Ubuntu: 1. Останавливаем MySQL

2. Запускаем mysql в safe-mode:

3. Запускаем клиента от root:

4. В приглашении mysql> выполняем запрос на смену пароля, вместо «NewPassWord» укажите новый пароль:

5. Перезагружаем привилегии

6. Выходим из MYSQL:

7. Перезагружаем MySQL:

 

Read more

MySQL шпаргалки

Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных. Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL. Работа с бекапами Делаем бекап mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql Создаём структуру базы без данных mysqldump –no-data – u USER -pPASSWORD DATABASE > /path/to/file/schema.sql Если нужно сделать дамп только одной или нескольких таблиц mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql Создаём бекап и сразу его архивируем mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz Создание бекапа с указанием его даты mysqldump -u USER -pPASSWORD DATABASE | gzip > date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz Заливаем бекап в базу данных mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql Заливаем архив бекапа в базу gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE или так zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE Создаём новую базу данных mysqladmin -u USER -pPASSWORD create NEWDATABASE Удобно использовать бекап с дополнительными опциями -Q -c -e, т.е. mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql, где: -Q оборачивает имена обратными кавычками -c делает полную вставку, включая имена колонок -e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее Для просмотра списка баз данных можно использовать команду: mysqlshow -u USER -pPASSWORD А так же можно посмотреть список таблиц базы: mysqlshow -u USER -pPASSWORD DATABASE Для таблиц InnoDB надо добавлять –single-transaction, это гарантирует целостность данных бекапа. Для таблиц MyISAN это не актуально, ибо они не поддерживают транзакционность. Подробнее Общие […]

Read more

Как узнать версию MySQL по FRM-файлу

Недавно я помогал клиенту разобраться почему минорное обновление MySQL требовало пересоздания некоторых таблиц. Утилита mysql_upgrade должна запускаться для любого обновления вне зависимости от разницы в версиях, но при минорном обновлении она обычно не требует пересоздания таблиц. Оказалось, что некоторые из их таблиц имели метку устаревшей версии MySQL, что могло произойти по нескольким причинам. Наиболее вероятно, что прошлое обновление MySQL прошло неудачно или, что таблицы были скопированы с сервера с устаревшей версией MySQL. Знаете ли вы, что в случаях подобных этому, есть быстрый, простой и безопасный способ проверить версию MySQL прописанную в таблице? Вы можете сделать это, распарсив FRM файл, в соответствии с описанием формата изложенным здесь. В спецификации указано, что номер версии занимает 4 байта и начинается с офсета 0x33. Так как он записан в формате little endian, вы можете получить номер версии, прочитав первые 2 байта. Это значит, что нам нужно воспользоваться hexdump, прочитать 2 байта, начиная с офсета 0x33 и преобразовать их в десятичный формат, чтобы получить версию MySQL:

Первый пример соответствует таблице созданной в MySQL версии 5.5.32, а второй – версии 5.1.73. Значит ли это, что таблица 51_test была изначально создана в MySQL 5.1.73? Не обязательно, т.к. MySQL обновляет штамп версии в FRM-файле, каждый раз когда таблица перестраивается или изменяется ALTER’ом. В документации указано, что детали хранения штампа версии могут быть изменены при переходе к новому текстовому формату хранения, но мне удалось получить версию вышеописанным способом для таблиц созданных в MySQL 5.7.7. Источник: http://web-hl.ru/index.php/2015/08/30/how-to-get-mysql-version-from-frm-file/

Read more

Решение проблемы “Too many open files” в MySQL

При росте количества таблиц и баз данных в MySQL рано или поздно Вы получите ошибку: Too many open files. Данная ошибка связана с не достаточным количеством выделенных дескрипторов файлов, на уровне операционной системы или MySQL. Анализ дескрипторов Вы можете произвести командой:

В результате увидите нечто подобное:

Как видите, в данном случае выдалось 1024 открытых файлов. Это не большое количество и может Вас не устроить. Вы можете увидеть, сколько выделено дескрипторов:

Так же, еще вариант просмотра:

Количество выделенных дескрипторов пользователю mySQL:

Для Debian и Linux Ubuntu:

Увеличиваем количество дескипторов

Заполняем таким содержимым:

Установка параметров, специфичных для MySQL:

Отредактируем файл /etc/security/limits.d/90-nproc.conf:

Заполним файл:

Установите под root:

Теперь, перезагрузите сервер и поменяйте параметры в конфиге MySQL:

Запишите после [mysqld]:

Запишите после [mysqld_safe]:

Теперь перезагрузите сервер:

Для проверки настроек в MySQL войдите:

Выполните команду:

В результате, должны увидеть:

Перезагрузите сервер и проверьте, сохранились ли настройки:

Если после загрузки Вы увидите значение 1024, то не сохранились настройки. В таком случае, читайте решение проблем. Решение проблем Проверьте файл /etc/security/limits.conf он должен содержать:

Или установите лимит таким образом:

Перезагрузите MySQL:

Можно внести изменения в:

Добавьте следующее:

В настройках /etc/my.cnf укажите:

или

Проблемы в Linux Ubuntu 15.04 Все перечисленные вещи не помогли в Linux Ubuntu 15.04. Немного погуглив, я нашел решение для Linux Ubuntu 15.04. Нужно внести изменения в файл: /lib/systemd/system/mysql.service К содержимому данного файла:

Добавьте:

 

Read more

Ubuntu: установка и настройка связки nginx + apache + php + mysql

В это статье я расскажу как быстро развернуть LAMP сервер на Ubuntu с кеширующим nginx Для всех команд необходим sudo, потому сразу войдем для удобства в этот режим:

Далее, обновляем данные из репозитариев:

Установка MySQL сервер:

Во время установки нас попросят ввести пароль root для сервера MySQL, вводим 2 раза. Дожидаемся окончания установки. Установка Apache, nginx, php:

Дожидаемся окончания установки. Включаем модули rewrite и include в apache2 при помощи утилиты — a2enmod:

Меняем порт в apache2 со стандартного 80 на 8080 (2 строчки):

Создаем новый веб сервер (VirtualHost), создаем файл конфигурации:

И вставляем в него следующий текст:

Далее, создаем папку сайта и запускаем сайт:

Проверяем в браузере — http://domain.com:8080 Конфигурируем nginx:

Приводим конфиг к такому виду:

Далее создаем и правим конфиг нашего сайта:

Вносим в него следующие записи:

Перезапускаем сервисы и проверяем работу:

Источник: http://evolan.org/linux/ubuntu-ustanovka-i-nastrojka-svyazki-nginx-apache-php-mysql/ Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more

Проблемы с кодировкой в MySQL 5

Столкнулся с проблемой кодировки при переходе из MySQL 4 в MySQL 5. Это вечная проблема, которая возникает при переходе из одной версии MySQL в другую и связана с поддерживаемыми кодовыми страницами. При переходе из MySQL 3 в MySQL 4 была проблема с кодировками, т.к. в MySQL 3 они не указывались, а в MySQL 4 стали указываться. При переходе же из версии MySQL 4 в MySQL 5 проблема связана с тем, что в 5-й версии уже используется универсальная кодировка utf-8.   В этом же форуме, я хочу подбить определённый результат, как эту проблему решить. 1. Прежде всего, нужно указать по умолчанию русские кодировки. 2. После вызова коннекта в PHP необходимо указать, что кодировка, например, cp1251 Так, например, в phpNuke я указал в файле mainfile.php после коннекта: // Rudjuk 24.06.2007 Change Error Code if ($db){ $db->sql_query(“set names ‘cp1251′”); } После этого должно работать. Кстати, при переносе данных из одного сервера, скажем MySQL 4 на другой с MySQL 5 следует обязательно после коннекта к базе (вначале дампа) указать: Код SET NAMES CP1251 Еще осталась проблема с автоматическим определением кодировки. Почему-то по умолчанию определяется на странице, что кодировка utf-8, хотя указано явно Код < meta http-equiv=”content-type” content=”text/html; charset=windows-1251″ /> В apache2 указывается кодировка по умолчанию в файле /etc/apache2/conf.d/charset, нужно просто вместо UTF-8 указать AddDefaultCharset windows-1251 Что и говорить проблемы с кодировкой – часто встречаемая проблема. Как её решить, прекрасно описано в статье: Решение проблем с кодировкой Какая кодировка настроена в MySQL вы можете узнать с помощью запроса: Код SHOW VARIABLES LIKE ‘character_set_client’; Кроме того, […]

Read more

Восстановление баз данных MySQL

Довольно часто базы данных MySQL “ломаются”. В результате, приходится ремонтировать. Поломки баз данных происходят из-за не корректных выключений компьютера или сбоев в компьютере, когда сервер не может корректно закрыть файл. Следует отметить, что не все базы данных удаётся поремонтировать, поэтому, рекомендуется делать резервные копии rolleyes.gif Есть несколько способов восстановления баз данных. И все они требуют, чтоб никто в это время не обращался к таблице базы данных, иначе предсказать последствия не возможно. Самый простой способ восстановления – выполнить SQL-команду: repair table <название таблицы>; Данная команда восстановит таблицу в большинстве случаев. Иногда, приходится использовать специальную утилиту для восстановления таблиц: myisamchk -r -q <название таблицы> – режим быстрого восстановления файлов. myisamchk -r <название таблицы> – режим восстановления файла. myisamchk -r -f -o <название таблицы> – режим восстановления в защищенном режиме файла. Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more