Справочник по языку MySQL — документация Mysql 4, 5 на русском языке

Содержание

Структура языка
Литералы: представление строк и чисел
Имена баз данных, таблиц, столбцов, индексы псевдонимы
Чувствительность имен к регистру
Переменные пользователя
Системные переменные
Синтаксис комментариев
«Придирчив» ли MySQL к зарезервированным словам?
Типы данных столбцов
Числовые типы данных
Типы данных даты и времени
Символьные типы данных
Выбор правильного типа данных в столбце
Использование типов столбцов из других баз данных
Требования к памяти для различных типов столбцов
Функции, используемые в операторах SELECT и WHERE
Операторы и функции общего назначения
Строковые функции
Числовые функции
Функции даты и времени
Функции приведения типов
Другие функции
Функции, используемые в операторах GROUP BY
Обработка данных: SELECT, INSERT, UPDATE, DELETE
Синтаксис оператора SELECT
Синтаксис оператора HANDLER
Синтаксис оператора INSERT
Синтаксис оператора INSERT DELAYED
Синтаксис оператора UPDATE
Синтаксис оператора DELETE
Синтаксис оператора TRUNCATE
Синтаксис оператора REPLACE
Синтаксис оператора LOAD DATA INFILE
Синтаксис оператора DO
Определение данных: CREATE, DROP, ALTER
Синтаксис оператора CREATE DATABASE
Синтаксис оператора DROP DATABASE
Синтаксис оператора CREATE TABLE
Синтаксис оператора ALTER TABLE
Синтаксис оператора RENAME TABLE
Синтаксис оператора DROP TABLE
Синтаксис оператора CREATE INDEX
Синтаксис оператора DROP INDEX
Основные команды пользовательских программ MySQL
Синтаксис команды USE
Синтаксис команды DESCRIBE (Получение информации о столбцах)
Команды управления транзакциями и блокировками в MySQL
Синтаксис команд BEGIN/COMMIT/ROLLBACK
Синтаксис команд LOCK TABLES/UNLOCK TABLES
Синтаксис команды SET TRANSACTION
Полнотекстовый поиск в MySQL
Ограничения для полнотекстового поиска
Тонкая настройка полнотекстового поиска в MySQL
Предстоящие доработки по полнотекстовому поиску
Кэш запросов в MySQL
Как работает кэширование запросов
Конфигурация кэша запросов
Параметры кэша запросов в запросе SELECT
Статус и поддержка кэша запросов

MySQL имеет очень сложный, но интуитивно понятный и легкий в изучении интерфейс, основанный на SQL (структурированный язык запросов). В данном разделе описываются различные команды, типы данных и функции этого языка, которые необходимо знать, чтобы использовать MySQL рационально и эффективно. Данная глава служит также справочником по всем функциональным возможностям, реализованным в MySQL. Читатель найдет в этой главе ссылки на различные источники информации, которые, возможно, будут полезными для ее эффективного использования.

Содержание

MySQL Основы

MySQL Основы

СУБД MySQL является основной при работе с базами данных. И освоить её придётся каждому, кто хочет использовать у себя на сайте базы данных.

А использовать реляционные базы данных придётся, если Ваш сайт поддерживает хотя бы регистрацию пользователей. Я уже молчу о других возможностях, которые они открывают. Поэтому Вы вряд ли сможете обойтись без баз данных, а для того, чтобы научиться использовать их через MySQL, я предлагаю Вам ознакомиться с материалами в этой категории.

Как я уже писал в разделе MySQL, мы будем использовать MySQL в PHP, хотя, освоив работу в PHP, Вы без проблем сможете подстроиться и под другой язык (например, Java), так как принципы одни и те же, и разница лишь в синтаксисе языков. Но это на будущее, а пока необходимо научиться использовать данное программное обеспечение в

PHP. Разумеется, Вам потребуются знания по написанию скриптов на языке PHP, поэтому если Вы ещё не умеете этого делать, то сначала научитесь работать с этим языком, и только потом переходите сюда.

Если же Вы уже умеете писать несложные (или, может быть, уже сложные) скрипты на PHP, то тогда добро пожаловать в завершающую стадию, где Вы получите последние необходимые знания, и дальше сможете уже двигаться самостоятельно.

Полный курс по PHP и MySQL: http://srs.myrusakov.ru/php

Прочитав статьи по основам MySQL, Вы узнаете:

1) Какая разница между SQL и MySQL.

2) О структуре базы данных

.

3) Какие типы полей имеются в MySQL.

4) Какие привилегии у пользователей в MySQL.

5) Какие возможности есть у ПО PHPMyAdmin.

6) Как управлять пользователями в PHPMyAdmin.

7) Как управлять базами данных в PHPMyAdmin.

8) Как управлять таблицами в PHPMyAdmin.

9) Как управлять записями в PHPMyAdmin.

10) Об индексах в MySQL.

11) Как подключиться к базе данных через PHP.

12) Как отправить запрос к базе данных в PHP.

13) Как импортировать базу данных через PHPMyAdmin.

14) Как узнать синтаксис SQL-запроса через PHPMyAdmin.

15) Как конвертировать

CSV в SQL.

16) Как сделать регистрозависимый поиск для MySQL.

17) Как исправить ошибку max user connections в MySQL.

18) Как оптимизировать запросы к MySQL.

19) Как руссифицировать PHPMyAdmin в Denwer.

20) Как узнать последний ID в MySQL.

21) Как импортировать базы данных больших размеров.

22) Что такое репликация в MySQL.

23) Как правильно создавать структуру базы данных.

24) Стоит ли хранить изображения в базе данных.

25) Как создать триггер в MySQL.

26) Как исправить ошибку server has gone away.

27) Как

нормализовать базу данных.

28) Какой движок для базы данных выбрать.

29) Зачем сайту MySQL? Таблицы, строки, запросы.

Все материалы по основам MySQL

Документация для MySQL на русском — Open Source — Новости

Ура! Стройные ряды пользователей MySQL, растущие за счёт людей, не знающих, что такое нормальная РСУБД, теперь будут расти ещё и за счёт не знающих английского языка людей!

anonymous ()

по моему, с лора и накрутили скриптом каким-то. Реально совершенно было дело тут на лоре :))

Тоесть типичный пример, как анонимусы и прочий местный матерящийся(в том числе и я) контингент синициировали по моему, полный перевод этого руководства :))

=============================================

1.3 О русском переводе руководства

Русский перевод документации на ПО СУБД MySQL выполнен в 2002-2003гг. компанией Ensita.NET (http://www.ensita.net/).

Переводчики: Василюк Елена, Добродеев Сергей, Закиянов Денис, Коротун Юрий, Пономарев Алексей, Ченцов Алексей; а также Жданов Сергей (раздел «Интерфейс DBI»).

Научная редакция: Егор Егоров, Людмила Мезенко, Виктория Резниченко.

Литературный редактор: Людимила Мезенко (the best!)

Главный редактор перевода: Егор Егоров

* * * * *

Компания Ensita.NET (http://www.ensita.net/) являясь официальным партнером MySQL AB с января 2002г. консультирует пользователей ПО СУБД MySQL по всему миру, поддерживая список рассылки [email protected] (see section 1.8.1.1 Списки рассылки MySQL).

Ensita.NET с 1999г. занимается разработкой программного обеспечения для веб-сайтов, обслуживанием СУБД и консалтингом.

===================================================

Эх, вот как история вершится!

УРА!

ну, теперь осталось перевести доки к постгресу и пора уже браться за оракула :)))

ananas ★★★★★ ()

А где-нибудь есть это в *.tgz?

anonymous ()

есть только в *.kpz

anonymous ()

Мужики , а вы помните как мы тут всем ЛОРом накручивали тот долбанный счётчик так , что туда в минуту по несколько тысяч голосов приходило , и как скептики над нами издевались , мол даффайте , красноглазые , просите у неба манны небесной ..

Поднимите архив , посмейтесь , я до сих пор с ухмылкой вспоминаю Ж8)

А вот ведь как вышло Ж8) ИМХО Эта фирма должна ЛОРу как минимум пива за контракт .

ИМХО появление этого перевода говорит лишь о том, что последнее поколение русскоязычных программеров (или скорее людей себя так называющих) в большинстве своем не знают английского… Ну дык так им и надо.. 😉

anonymous ()

2Cannabinolus — помню помню :)))))

п©п? п?п╣п?я┐

anonymous ()

Все крутили и я тоже крутил и правельно — надо чтоб mysql.com весь по дефолту на руском был

не потому что я не знаю англицкого. а просто — знай наших ъля! ;0

anonymous ()

Все крутили и я тоже крутил и правельно не потому что я не знаю англицкого. а просто — знай наших ъля! ;0

С тобой сложнее .. Ты даже русского не знаешь , что уж про английски .

а если серьёзно и без флейма, что не такое чахоточное есть, какие бызы данных ОБЩЕГО, не заточенные под что то конкретное лучше учить?

anonymous ()


И что там сложного было в этом мануале? Главное было понимать
латиницу и уметь вычленить в тексте int,varchar и команды sql.
Остальное и так по смыслу понять можно. Отличный самоучитель
по английскому для начинающих.

anonymous ()

Может конечно эта дока на русском и не больно то нужна кому, но … приятно однако ее видеть на mysql.com. 😉

anonymous ()

Задолбали любители английского. В свое время куча народу в россии науку на чужих языках двигало. И стояло на месте. Соило перейти на русский, как пошел прогресс. Вообщем, Задобали.

anonymous ()

Предлагаю всем кто скачает перевод или хотя бы планирует его проглядеть послать письмо в MySQL с благодарностями за перевод. Я уже послал. На английском! :)

Вежливый анонимус.

anonymous ()

> Предлагаю всем кто скачает перевод или хотя бы планирует его проглядеть послать письмо в MySQL с благодарностями за перевод.

а вот это, имхо, очень здравая мысль. послать благодарность можно даже если и не планируете скачивать перевод 🙂

ananas ★★★★★ ()

ananas (*) (2003-03-05 12:41:06.363)

Или скриптик написать, который отпраит много очень много благодарностей 😉

anonymous ()

Вплоть до попадания в блеклисты

anonymous ()

> В свое время куча народу в россии науку на чужих языках > двигало. И стояло на месте. Соило перейти на русский, > как пошел прогресс. Вообщем, Задобали.

progress??? gde eto ty videl progress??

anonymous ()

Я про то, что было до Ломоносова, и что после. Если ты назовешь хотя бы одного ученого до Ломоносова, то, считай, что ты эрудит.

anonymous ()

Eiler

anonymous ()


Ломоносов спокойно себе изучал науки на немецком и голландском,
и как-то не замечал трудностей, о которых вы тут рассказываете.
И вообще культурный человек обязан знать английский. А не
культурные… Подметать дворы и асфальтировать дороги тоже
кому-то надо 😉

anonymous ()

Не вижу ничего плохого в том,что появился русский перевод.Куда как приятнее читать на родном языке,несмотря на то что для меня и английский не проблема.

Тем кто считает что это не нужно: тогда будьте последовательны и не русифицируйте систему,забейте на локаль и пишите письма по-английски русским девелоперам — они наверное будут рады

anonymous ()

> Ломоносов спокойно себе изучал науки на немецком и голландском,

> и как-то не замечал трудностей, о которых вы тут рассказываете.

Гм, и это он в своих Холмогорах на немецком и голландском читал? И когда это он успел эти языки выучить…

Культурный человек должен знать РОДНОЙ язык, а остальные как получится. Почему вы считаете, что культурному человеку простительно не знать скажем немецкий, французский или китайский язык? Бред.

Впрочем у папуасов тоже есть культура 🙂

И вообще это дурной спор: — нет бл#*дь только в гамаке и стоя — мы, комсомольцы, не можем без трудностей!

anonymous ()

а может и ну его, ентот русский. английский проще, опят же кодировок разных нет. лафа. и говорить надо на нем, чтоб тренироваться….

в общем не пора-ли кому-то из страны эмигрировать. в штаты-австралию например. а насчет Эйлера, так его можно считать российским ученым — сколько лет в Академии Наук проработал.

когда был Алгол (основанный на русском язык программирования) в Сов. Союзе мы делали свои эвм (БЭСМ тот же), когда перешли на фортран серия ЕС (глюкавый клон IBM 360) пришла на смену. До сих пор народ плюется вспоминая.

anonymous ()

>>нет бл#*дь только в гамаке и стоя — мы, комсомольцы, не можем без трудностей!

Это вы о русском языке так отзываетесь???
Не задумывался многоуважаемый, что кое что таки на английском читать проще впринципе. Когда человек не понимает какуе-то фразу или оборот — он берет словарь и ищет. Когда в переводе «кривой» первод мало кто задумываетсья отсыскать оригинал. И думает, какого эта фиговина работает не так как описано???

Блин, назовите мне хоть один язык, у которого минимум 3 реально используемых кодировки??
Даже сейчас, когда всю вокруг белое пушистое, и руссифицированое из коробки регулярно вылазят траблы с кодировками.. Примеры приводить???

Ну шо за жизнь… %(

Кодировки не у языка, а у алфавита

anonymous ()

Русский язык — самый
разязыковисто-языкастый язык в мире!!!

а теперь попробуйте тоже самое сказать на английском 😉

anonymous ()

Я хоть и русский, но читать МАНы и документацию мне приятнее, чем на родном. Английский он конечно тупой язык, от того и легкий. Если бы весь софт в России делали, и русский был бы интернациональным, то тогда я думаю проблем-бы не было ни с кодировкой, ни с чем.

Пошел я читать доки по мускулю дальше (на английском).


Махно Мухосрало

anonymous ()

Ага большинству наших программеров легче выучить англицкий и пользовать их проги чем написать свое родное

anonymous ()

Да в общем-то никто не против литературы на русском, но имейте же совесть, referance manual на русском и, скажем, «Искусство программирования» — «две большие разницы» (как говорят в Одессе).
Дело не только в содержании, но именно из него следует такая проблема, как качество перевода.
В переводе такой литературы, наверное, самым важным фактором является корректный и _единый_ перевод всех специфических слов данной области в большинстве печатных изданий. Хороших специалистов в конкретной области знающих ОБА языка в совершенстве мало, да и те получают нормальные деньги за перевод.
Перевод же «документации» молодыми ребятами приветствуется мной, но расценивается лишь как тренировка в английском. (отдельного разговора заслуживают команды перевода программнных продуктов)

А дополнительные языки в наше время, я считаю, знать если не необходимо, то очень желательно.

З.Ы. Если подождать совсем немного, то видимо переведут и сам MySQL, потому что запоминать эти страшные аббревиатуры человеку не знающему что такое SELECT — УХ! 😉

silver ★ ()

З.Ы. Если подождать совсем немного, то видимо переведут и сам MySQL, потому что запоминать эти страшные аббревиатуры человеку не знающему что такое SELECT — УХ! ;)

Господи Ну и пионеры … (неужели вы не знаете что сементика английского языка ЗАЛОЖЕНА в SQL ДЛЯ тупых «нормального» Русского Сиквела на русском быть не может даже в теории)

anonymous ()

Русский язык — самый разязыковисто-языкастый язык в мире!!!

Ээ А что там вам завещал великий Ленин ???

как например на русском звучит вот это?

She sells Sea shells on the seashore The shells She sells are sea shells I am sure if she sells sea shells on the seashore Then I’m sure she sells seashore shells

anonymous ()

> Ломоносов спокойно себе изучал науки на немецком и голландском, и как-то не замечал трудностей, о которых вы тут рассказываете. И вообще культурный человек обязан знать английский. А не культурные… Подметать дворы и асфальтировать дороги тоже кому-то надо ;)

Ага изучал. Только поддерживал тех кто палкой заставлял снобов академиков на русском статьи печатать, хотя бы и простые переводы. Для высокого уровня знать языки обязательно, но для уровня чуть пониже нет. Русский во всем, дает большое количество тех кто пониже. Из большого количества тех кто пониже выйдет и большее количество и тех кто повыше. Вдобавок основную массу работу берут те кто пониже. Те кто повыше берут только то, что заслуживает их внимания.

Так русские мануалы MySQL дадут волну новичков, которые будут брать простую работу. И против русского могут выступать, только те, кто боятся за свою кормушку. Типа на работе они делают вид, что крутуые спецы, а на самом деле такую работу может сделать почти каждый. Вообщем, те кто внушает всем, что круты, но сами то знают, что ничем не отличаются.

anonymous ()

Дедушка мой говорил на русском языке, он на войне погиб, а я уважаю и люблю этот язык, который он знал. Даже больше, чем Open Source люблю и даже больше, чем GNU, про Mysql и не говорю вообще. «Язык того, на которого они указывают, иноземный, а это — язык арабский, ясный» (цэ)

anonymous ()

Сура «Поэты». 8))) Книга — «книга прямая — нет в ней изъяна» 8)))

Zulu ★★☆☆ ()

<цитата>She sells Sea shells on the seashore The shells She sells are sea shells I am sure if she sells sea shells on the seashore Then I’m sure she sells seashore shells </цитата>

хехехе! Видимо также, как на английском такое: еду я по выбоине, из выбоины не выеду.

walrus ★ ()

Злостный офтоп навеяный сабжем: просвятите плиз — какого крена моська коруптит isam -таблицы если меняешь тип кодировки со стандартной (Latin там какой-то ) на win1251, тоесть пускаю демона с ключами другой кодировки. База живет до первого апдейта, после чего высыпает в корупты все таблицы, которые апдейтили. моська 3.23.53. Другие версии тоже лупят таблицы — проверял. Отрубаю кодировку, чеком вытягиваю базы и все становится нормально. Если кто знает откуда грабли — намыльте [email protected]

Вдогонку: кодировку по дефолту пришлось менять из-за jdbc, ибо оно спрашивает какая кодировка на серваке, такую сует и в рекордсеты. Может кто подскажет как в jdbc заставить юзать нужную кодировку на рекордсете чтобы я моську не трогал?

Ёще на англицком:

«Can you can a can with can?»

😉

anonymous ()

>Русский язык — самый
>разязыковисто-языкастый язык в мире!!!
The Russian language is the most languageous-lingual language in the world :)

del ☆ ()


> Только поддерживал тех кто палкой заставлял снобов академиков на русском статьи печатать

Для кого? Для толпы мещан? А между тем в то время все научные
работы писались на латыни. Ученый в любой стране мог прочесть
их. Другой пример — музыкальная нотация. Тоже язык. Никто его
на русский перевести пока не догадался 😉 Может займешься?

anonymous ()

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Миграция данных в Managed Service for MySQL | Яндекс.Облако

Чтобы перенести вашу базу данных в сервис Managed Service for MySQL, нужно непосредственно перенести данные, закрыть старую базу данных на запись и перенести нагрузку на кластер БД в Яндекс.Облаке.

Перенести данные в кластер Managed Service for MySQL можно с помощью утилит mysqldump и mysql: создайте дамп рабочей базы и восстановите его в нужном кластере.

Перед тем, как переносить данные, проверьте, совпадают ли версии СУБД у существующей базы данных и вашего кластера в Облаке. Так как дамп логический и представляет собой набор SQL-запросов, то перенос данных между кластерами с различными версиями возможен, но не гарантируется. Более подробно об этом см. в MySQL 5.7 FAQ Migration.

Ниже сервер СУБД, с которого вы переносите данные, называется сервер-источник, а кластер Managed Service for MySQL, на который вы мигрируете — сервер-приемник.

Этапы миграции:

  1. Создайте дамп переносимой базы.
  2. При необходимости создайте виртуальную машину в Яндекс.Облаке и загрузите данные на нее.
  3. Создайте кластер Managed Service for MySQL.
  4. Восстановите данные из дампа.

Создание дампа

Создать дамп базы данных следует с помощью утилиты mysqldump, которая подробно описана в документации MySQL.

  1. Перед созданием дампа рекомендуется переключить базу в режим только чтение, чтобы не потерять данные, которые бы появились во время создания дампа. Сам дамп базы данных создайте следующей командой:

    $ mysqldump -h <адрес сервера-источника> \
                --user=<имя пользователя> \
                --password \
                --port=<порт> \
                --set-gtid-purged=OFF \
                --quick \
                --single-transaction <имя базы данных> \
                > ~/db_dump.sql
    

    Если сервер-источник использует таблицы InnoDB, используйте опцию --single-transaction для гарантированной консистентности данных. Для таблиц MyISAM эта опция не имеет смысла, так как транзакции не поддерживаются. Также стоит иметь в виду следующие флаги:

    • --events — если в вашей базе есть периодические события;
    • --routines — если в вашей базе есть функции и хранимые процедуры.
  2. Упакуйте дамп в архив:

    $ tar -cvzf db_dump.tar.gz ~/db_dump.sql
    

(опционально) Создание виртуальной машины в Облаке и загрузка дампа

Переносить данные на промежуточную виртуальную машину в Yandex Compute Cloud нужно, если:

  • К вашему кластеру Managed Service for MySQL нет доступа из интернета.
  • Ваше оборудование или соединение с кластером в Облаке недостаточно надежны.

Нужное количество оперативной памяти и ядер процессора зависит от объема переносимых данных и требуемой скорости переноса.

Чтобы подготовить виртуальную машину для восстановления дампа:

  1. В консоли управление создайте новую виртуальную машину из образа Ubuntu 18.04. Параметры виртуальной машины должны зависеть от размера базы, которую Вы хотите перенести. Минимальной конфигурации (1 ядро, 2 ГБ RAM, 10 ГБ дискового пространства) должно хватить для переносы базы до 1 ГБ. Чем больше переносимая база, тем больше должно быть дискового пространства (как минимум в два раза больше, чем размер базы), и больше размер оперативной памяти.

    Виртуальная машина должна находиться в той же сети и зоне доступности, что хост-мастер кластера MySQL. Кроме того, виртуальной машине должен быть присвоен внешний IP-адрес, чтобы вы могли загрузить дамп извне Облака.

  2. Установите клиент MySQL и дополнительные утилиты для работы с СУБД. Для Debian/Ubuntu утилиты mysqldump и mysql поставляются в пакете mysql-client, его установка:

    $ sudo apt-get install mysql-client
    
  3. Перенесите дамп базы данных на виртуальную машину, например, используя утилиту scp:

    scp ~/db_dump.tar.gz <имя пользователя ВМ>@<публичный адрес ВМ>:/tmp/db_dump.tar.gz
    
  4. Распакуйте дамп:

    tar -xzf /tmp/db_dump.tar.gz
    

Создание кластера Managed Service for MySQL

Инструкцию по созданию кластера можно найти в разделе Создание MySQL-кластера.

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

Восстанавливать дамп базы данных следует с помощью утилиты mysql. Чтобы получать больше информации в случае возникновения ошибок, восстановление рекомендуется проводить установив флаг --line-numbers.

  • Если вы восстанавливаете дамп с виртуальной машины в Яндекс.Облаке:

    $ mysql -h <адрес сервера СУБД> \
            --user=<имя пользователя>
            --password \
            --port=3306 \
            --line-numbers <имя базы данных> \
            < /tmp/db_dump.sql
    
  • Если вы восстанавливаете дамп с собственного сервера, необходимо скачать сертификат и задать параметры SSL --ssl-cal и --ssl-mode. Команды для подключения к кластеру и ссылку на сертификат можно найти в консоли управления, по кнопке Подключиться.

    Команда восстановления базы из дампа:

    $ mysql -h <адрес сервера СУБД> --user=<имя пользователя> --password --port=3306 --ssl-ca=~/.mysql/root.crt --ssl-mode=VERIFY_IDENTITY --line-numbers <имя базы данных>  < ~/db_dump.sql
    

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 это не актуально, ибо они не поддерживают транзакционность.

Подробнее

Общие факты

  • Полезно под каждую базу на боевом сервере создавать своего пользователя
  • Кодировка базы может быть любой, если она UTF8
  • В большинстве случаев лучше использовать движок InnoDB
  • В php лучше забыть про сильно устаревшее расширение mysql и по-возможности использовать pdo или mysqli
  • Новую копию MySQL всегда можно настроить и оптимизировать
  • Без особой нужды не стоит открывать MySQL наружу. Вместо этого можно сделать проброс портов
    ssh -fNL LOCAL_PORT:localhost:3306 REMOTE_USER@REMOTE_HOST
Работа с данными
Числа

  • На 32-битных системах практически нет смысла ставить для типа INTEGER свойство UNSIGNED, так как такие большие числа в php не поддерживаются.
    На 64-битных системах, php поддерживает большие числа, вплоть до MySQL BIGINT со знаком.
  • Связанные таблицы («Foreign keys») должны иметь полное сходство по структуре ключей. Т.е. если у нас на одной таблице для поля указано «INTEGER UNSIGNED DEFAULT 0 NOT NULL» то и на другой должно быть указано аналогично
  • Для хранения булевых значений, нужно использовать TINYINT(1)
  • А деньги лучше хранить в DECIMAL(10, 2), где первое число обозначает количество всех знаков, включая запятую, а второе — количество знаков после запятой. Итого, у нас получится что DECIMAL(10,2) может сохранить 9999999,99
Строки

  • В старых версиях (до 5.0.3) VARCHAR была ограничена 255 символами, но сейчас можно указывать до 65535 символов
  • Помните, что тип TEXT ограничен только 64 килобитами, поэтому что бы сохранять «Войну и Мир» пользуйтесь «LONGTEXT»
  • Самая правильная кодировка для вашей БД UTF8
Даты

Не забывайте, что
  • DATE, TIME, DATETIME — выводятся в виде строк, поэтому поиск и сравнение дат происходит через преобразование
  • TIMESTAMP — хранится в виде UNIX_TIMESTAMP, и можно указать автоматически обновлять колонку
  • Сравнивая типы данных DATETIME и TIMESTAMP, не забывайте делать преобразование типов, например:
    SELECT * FROM table WHERE `datetime` = DATE(`timestamp`)
Перечисления

  • Для перечислений правильно использовать тип ENUM
  • Правильно пишется так: ENUM(‘мама’, ‘мыла’, ‘раму’)
  • Можно ставить значение по-умолчанию, как и для любой строки
  • В базе поле с перечислением хранится как число, поэтому скорость работы — потрясающе высокая
  • Количество перечислений ~ 65 тысяч

dev.mysql.com/doc/refman/4.1/en/storage-requirements.html
help.scibit.com/mascon/masconMySQL_Field_Types.html

Отладка
  • Если запросы тормозят, то можно включить лог для медленных запросов в /etc/mysql/my.cnf
  • А потом оптимизировать запросы через EXPLAIN
  • И наблюдать за запросами удобно через программу mytop

Пожалуйста, сообщите мне, если вы заметили неточность или есть желание поделиться советом или шпаргалкой.

MySQL | Русскоязычная документация по Ubuntu

MySQL — свободная СУБД для малых и средних приложений. Входит в состав LAMP и XAMPP.

Версии MySQL в Ubuntu

Ubuntu MySQL
12.04 LTS (Precise) 5.5
14.04 LTS (Trusty) 5.5, 5.6
15.10 (Wily) 5.6
16.04 LTS (Xenial) 5.7

Установка

MySQL есть в репозиториях Ubuntu. Он разбит на несколько пакетов.

  • Для того чтобы установить MySQL сервер выполните команду:

    sudo apt-get install mysql-server

    При установке конфигурационный скрипт запросит пароль для администратора (root) базы данных.

  • Для того чтобы установить консольный клиент MySQL выполните команду:

    sudo apt-get install mysql-client
  • Для того чтобы установить модуль для работы с MySQL в PHP выполните команду:

    sudo apt-get install php5-mysql

Настройка

Конфигурация сервера MySQL содержится в файле /etc/mysql/my.cnf.

Доступ к серверу из сети

По умолчанию сервер MySQL принимает соединения только с локальной машины. Для того, чтобы разрешить подключаться к нему с других машин замените строку

bind-address            = 127.0.0.1

на

#разрешить подключатся с любого хоста
bind-address            = 0.0.0.0
#разрешить подключатся только с указанного IP
bind-address            = 192.168.1.23

Кодировки

В данном разделе используется распространённое решение проблемы с кодировкой. Стоит помнить, что данное решение не является правильным, хоть и помогает временно решить проблему. Для правильного использования кодировки создавайте или храните таблицы в любой удобной для хранения в СУБД кодировке, а вот клиент должен подключаться к СУБД с указанием той кодировки, с которй выводится текст или производится обработка данных.

По-умолчанию в Ubuntu MySQL устанавливается с кодировкой latin1. В этом можно убедиться посмотрев вывод запроса:

SHOW VARIABLES LIKE 'char%';
character_set_client   latin1                      
character_set_connection latin1                    
character_set_database    latin1                    
character_set_filesystem   binary                   
character_set_results    latin1                    
character_set_server     latin1                   
character_set_system    utf8                       
character_sets_dir       /usr/share/mysql/charsets/

В связи с этим, даже используя при работе с сервером команду

SET names utf8;

и используя при создании таблиц

...DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

невозможно добиться полной поддержки кодировки utf8:

character_set_client    utf8                        
character_set_connection  utf8                       
...                    
character_set_server        latin1                  
...            
character_sets_dir         /usr/share/mysql/charsets/

Кодировка по-умолчанию все равно останется latin1, что неудобно и может привести к ошибкам.

Чтобы сервер сразу загружался с нужной кодировкой, необходимо отредактировать файл /etc/mysql/my.cnf:

sudo nano -w /etc/mysql/my.cnf

В секцию [mysqld] добавьте следующие строки:

skip-character-set-client-handshake
character-set-server = utf8
init-connect='SET NAMES utf8'
collation-server=utf8_general_ci

Так же желательно установить кодировку для клиента и mysqldump. Для этого в секциях [client] и [mysqldump] необходимо добавить строчку:

default-character-set=utf8

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

sudo service mysql restart

После этого список переменных будет выглядеть так:

character_set_client      utf8                     
character_set_connection   utf8               
character_set_database      utf8                
character_set_filesystem  binary                    
character_set_results        utf8                        
character_set_server         utf8                        
character_set_system       utf8                        
character_sets_dir          /usr/share/mysql/charsets/

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

Администрирование

Восстановление забытого пароля для root’a

Схожая проблема возникает если не задать пароль при установке MySQL, в этом случае mysql использует плагин unix-socket.

  1. Остановите mysqld:

    sudo service mysql stop
  2. Запустите mysqld с параметрами --skip-grant-tables --user=root:

    sudo mysqld --skip-grant-tables --user=root

    Если команда не сработает, добавьте строку «skip-grant-tables» в секцию «[mysqld]» файла /etc/mysql/mysql.conf.d/mysqld.cnf. Затем выполните sudo service mysql restart. После выполнения операций удалите эту строку.

  3. Подключитесь к MySQL-серверу командой:

    mysql -u root
  4. Перезапустите демона:

    sudo service mysql restart

Теперь можете проверить вход под root с новым паролем:

mysql -u root -p

Резервное копирование

Для создания резервных копий существует специальная утилита mysqldump. Основные ее параметры приведены в таблице:

Параметр Описание Пример
-u<user> Пользователь, от лица которого будет производится дамп баз данных. -uroot
-p<password> Пароль пользователя. Пароль необязательно указывать, достаточно упомянуть этот параметр для того, чтобы утилита знала что подключение требует пароля. -ppassword
-p
-h<host> Хост, на котором расположена база данных. -h227.0.0.1
-A Создать бекап всех баз данных. -A
-B <databases> Базы данных, которые нужно забэкапить. -B db1 db2 db3
--tables <tables> Таблицы, которые нужно забэкапить. Перекрывает действие ключа -B --tables db1.table1 db1.table2 db2.table3
-d Создать бекап структуры таблиц. Содержимое таблиц скопировано не будет. -d
--skip-extended-insert Не использовать многострочные INSERT-записи при создании дампа. --skip-extended-insert
-w'where_clause Создавать дамп только тех строк, которые попадают под условие. -w'Id > 10 AND Id < 100

Отключение и включение автозагрузки сервиса

Начиная с версии Ubuntu 15.04 отключение и включение сервисов возможно одной командой, без редактирования конфигов. В примерах команд ниже слово «SERVICE» следует заменить на «mysql».

Узнать стоит ли сервис в автозагрузке:

$ systemctl is-enabled SERVICE

Убрать сервис из автозагрузки в Ubuntu-16.04:

$ sudo systemctl disable SERVICE

Добавить сервис в автозагрузку в Ubuntu-16.04:

$ sudo systemctl enable SERVICE

MySQL Workbench

MySQL Workbench – инструмент для визуального проектирования баз данных. MySQL Workbench существует в двух вариантах:

  • Community Edition – бесплатная версия, распространяемая под лицензией GPL3
  • Standard Edition – платная версия, включающая в себя некоторые дополнительные возможности.

MySQL Workbench можно скачать с официального сайта http://www.mysql.com/downloads/workbench/.

Пакет вложенный на официальном сайте не подходит для Ubuntu 12.04 и выше. Это связано с тем, что пакет libzip1, прописанный в зависимостях был исключен из репозиториев. Как временное решение используйте PPA ppa:olivier-berten/misc .

Ссылки

Сайт на WordPress с кластером БД MySQL | Яндекс.Облако

С помощью этой инструкции вы научитесь разворачивать сайт на базе CMS WordPress с кластером баз данных под управлением СУБД MySQL в инфраструктуре Яндекс.Облака.

Чтобы настроить веб-сайт на WordPress с MySQL-кластером:

  1. Подготовьте облако к работе.
  2. Создайте виртуальную машину для WordPress.
  3. Создайте кластер БД MySQL.
  4. Настройте веб-сервер Nginx.
  5. Установите WordPress и дополнительные компоненты.
  6. Настройте WordPress.
  7. Проверьте работу веб-сайта.
  8. Настройте DNS.

Если сайт вам больше не нужен, удалите все используемые им ресурсы.

Подготовьте облако к работе

Перед работой нужно зарегистрироваться в Облаке и создать платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Яндекс.Облако или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша виртуальная машина, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсы

В стоимость поддержки веб-сайта на WordPress с MySQL-кластером входит:

Создайте виртуальную машину для WordPress

Чтобы создать виртуальную машину:

  1. На странице каталога в консоли управления нажмите кнопку Создать ресурс и выберите Виртуальная машина.

  2. В поле Имя введите имя виртуальной машины: wp-mysql-tutorial-web.

  3. Выберите зону доступности, в которой будет находиться виртуальная машина.

  4. В блоке Образы из Cloud Marketplace нажмите кнопку Выбрать. Выберите публичный образ Debian 10, Ubuntu 18.04 или CentOS 7.

  5. В блоке Вычислительные ресурсы:

    • Выберите платформу.
    • Укажите необходимое количество vCPU и объем RAM:
      • vCPU — 2.
      • Гарантированная доля vCPU — 5%.
      • RAM — 1 ГБ.
  6. В блоке Сетевые настройки выберите сеть и подсеть, к которым нужно подключить виртуальную машину. Если нужной сети или подсети еще нет, вы можете создать их прямо на странице создания ВМ.

  7. В поле Публичный адрес оставьте значение Автоматически, чтобы назначить виртуальной машине случайный внешний IP-адрес из пула Яндекс.Облака, или выберите статический адрес из списка, если вы зарезервировали его заранее.

  8. Укажите данные для доступа на виртуальную машину:

    Внимание

    IP-адрес и имя хоста (FQDN) для подключения к машине назначатся ей при создании. Если вы выбрали вариант Без адреса в поле Публичный адрес, вы не сможете обращаться к ВМ из интернета.

  9. Нажмите кнопку Создать ВМ.

Создание виртуальной машины может занять несколько минут. Когда виртуальная машина перейдет в статус RUNNING, вы можете переходить к следующему шагу.

При создании виртуальной машине назначается публичный IP-адрес и имя хоста (FQDN). Эти данные можно использовать для доступа по SSH.

Создайте кластер БД MySQL

  1. На странице каталога в консоли управления нажмите кнопку Создать ресурс и выберите Кластер MySQL.

  2. В поле Имя введите имя кластера: wp-mysql-tutorial-db-cluster.

  3. В блоке Класс хоста выберите s2.small.

  4. В блоке Размер хранилища укажите 10 ГБ.

  5. В блоке База данных:

    • В поле Имя БД введите wp-mysql-tutorial-db.
    • В поле Имя пользователя введите wordpress.
    • В поле Пароль введите пароль, который вы будете использовать для доступа к базе.
    • В списке Сеть выберите сеть, к которой будет подключена ваша виртуальная машина.
  6. В блоке Хосты добавьте еще два хоста в других зонах доступности. При создании хостов не включайте для них Публичный доступ.

  7. В блоке Настройки СУБД нажмите кнопку Настроить.

    В поле Default authentication plugin выберите пункт mysql_native_password и нажмите кнопку Сохранить.

  8. Нажмите кнопку Создать кластер.

Создание кластера БД может занять несколько минут.

Настройте веб-сервер Nginx

После того как виртуальная машина wp-mysql-tutorial-web перейдет в статус RUNNING:

  1. В блоке Сеть на странице виртуальной машины в консоли управления найдите публичный IP-адрес виртуальной машины.

  2. Подключитесь к виртуальной машине по протоколу SSH. Для этого можно использовать утилиту ssh в Linux и macOS и программу PuTTY для Windows.

    Рекомендуемый способ аутентификации при подключении по SSH — с помощью пары ключей. Не забудьте настроить использование созданной пары ключей: закрытый ключ должен соответствовать открытому ключу, переданному на виртуальную машину.

  3. Установите Nginx, менеджер процессов PHP-FPM и дополнительные пакеты:

    $ sudo apt-get update -qq
    $ sudo apt-get install -y nginx-full php-fpm php-mysql
    $ sudo systemctl enable nginx
    
    $ sudo yum -y install epel-release
    $ sudo yum -y install nginx
    $ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    $ sudo yum -y --enablerepo=remi-php72 install php php-mysql php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt
    $ sudo yum -y --enablerepo=remi-php72 install php-fpm
    $ sudo systemctl enable nginx
    $ sudo systemctl enable php-fpm
    
  4. Задайте настройки веб-сервера в конфигурационных файлах Nginx:

    1. Вы можете отредактировать файл с помощью редактора nano:

      $ sudo nano /etc/nginx/sites-available/wordpress
      
    2. Приведите файл к виду:

      server {
          listen 80 default_server;
      
          root /var/www/wordpress;
          index index.php;
      
          server_name <DNS-имя севера>;
      
          location / {
              try_files $uri $uri/ =404;
          }
      
          error_page 404 /404.html;
          error_page 500 502 503 504 /50x.html;
          location = /50x.html {
              root /usr/share/nginx/html;
          }
      
          location ~ \.php$ {
              try_files $uri =404;
              fastcgi_split_path_info ^(.+\.php)(/.+)$;
              fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
              fastcgi_index index.php;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include fastcgi_params;
          }
      }
      
    3. Разрешите запуск вашего сайта:

      $ sudo rm /etc/nginx/sites-enabled/default
      $ sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
      
    1. Вы можете отредактировать файл с помощью редактора nano:

      $ sudo nano /etc/nginx/sites-available/wordpress
      
    2. Приведите файл к виду:

      server {
          listen 80 default_server;
      
          root /var/www/wordpress;
          index index.php;
      
          server_name <DNS-имя севера>;
      
          location / {
              try_files $uri $uri/ =404;
          }
      
          error_page 404 /404.html;
          error_page 500 502 503 504 /50x.html;
          location = /50x.html {
              root /usr/share/nginx/html;
          }
      
          location ~ \.php$ {
              try_files $uri =404;
              fastcgi_split_path_info ^(.+\.php)(/.+)$;
              fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
              fastcgi_index index.php;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include fastcgi_params;
          }
      }
      
    3. Разрешите запуск вашего сайта:

      $ sudo rm /etc/nginx/sites-enabled/default
      $ sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
      

MySQL :: Зона разработчика

START GROUP_REPLICATION теперь может принимать учетные данные восстановления в качестве параметров
Начиная с MySQL 8.0.21 и далее START GROUP_REPLICATION включает новые параметры, которые позволяют пользователю указывать учетные данные, которые будут использоваться для распределенного восстановления. Теперь вы можете передавать учетные данные при вызове START GROUP_REPLICATION вместо их установки при настройке group_replication_recovery …

Сообщения СИСТЕМЫ групповой репликации в журнале ошибок
Групповая репликация позволяет создавать отказоустойчивые системы с избыточностью путем репликации состояния системы на набор серверов.Даже если некоторые из серверов впоследствии выйдут из строя, если это не все или большинство, система все еще доступна.…

Укажите IP-адреса восстановления в групповой репликации Распределенное восстановление
с групповой репликацией является одной из ключевых функций, и до сих пор оно было ограничено для выполнения через одну точку подключения mysql, автоматически определенную для системных переменных mysql порт и хост. С group_replication_recovery_endpoints мы можем указать, через какие интерфейсы можно…

Что нового в MySQL Shell 8.0.21
Команда MySQL с гордостью сообщает о доступности версии 8.0.21 оболочки MySQL. Утилиты логического дампа и загрузки MySQL Shell В MySQL Shell 8.0.21 был представлен новый набор утилит логического дампа. util.dumpInstance (), util.dumpSchemas () и util.loadDump ()…

MySQL Group Replication — изменен ответ по умолчанию на сетевые разделы
MySQL Group Replication позволяет вам создать группу серверов репликации высокой доступности с минимальными усилиями.Он предоставляет автоматизированные механизмы для обнаружения и реагирования на сбои в членах группы. Реакция зависит от характеристик каждого сбоя, и это …

Скрытие экземпляров в MySQL InnoDB Cluster / ReplicaSet
MySQL Router является ключевым компонентом InnoDB Cluster / ReplicaSet, который обеспечивает автоматическую маршрутизацию клиентского трафика к нужным экземплярам архитектуры вашей базы данных. Маршрутизатор может автоматически приспосабливаться к изменениям топологии, однако, есть некоторые сценарии, в которых вы наверняка выиграете…

MySQL Shell AdminAPI — Что нового в 8.0.21?
Команда разработчиков MySQL с радостью объявляет о новой версии 8.0 для поддержки MySQL Shell AdminAPI — 8.0.21! Как всегда, мы выслушали растущее сообщество пользователей и представили очень полезную функцию для любого производственного развертывания MySQL InnoDB Cluster или ReplicaSet.…

Теперь вы можете использовать контрольные суммы двоичного журнала с групповой репликацией
Групповая репликация позволяет создавать отказоустойчивые системы с избыточностью путем репликации состояния системы на набор серверов.Даже если некоторые из серверов впоследствии выйдут из строя, если это не все или большинство, система все еще доступна.…

,

MySQL :: Загрузить MySQL Community Server

Linux — универсальный (glibc 2.12) (x86, 32-разрядный), сжатый архив TAR 8.0.21 333,9M
(mysql-8.0.21-linux-glibc2.12-i686.tar.xz) MD5: 790b4870986eba1909512ec0c6f659e6 | Подпись
Linux — Generic (glibc 2.12) (x86, 64-разрядная версия), сжатый архив TAR 8.0.21 331,7M
(mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz) MD5: d39efe001766edfa956e673c1a60a26a | Подпись
Linux — Generic (glibc 2.12) (x86, 32-разрядная версия), сжатый TAR Archive
Test Suite
8.0.21 378,5M
(mysql-test-8.0.21-linux-glibc2.12-i686.tar.xz) MD5: 6e32e68fc2c79c74a37371b626af1ab1 | Подпись
Linux — Generic (glibc 2.12) (x86, 64-разрядная версия), сжатый TAR Archive
Test Suite
8.0.21 374,8M
(mysql-test-8.0.21-linux-glibc2.12-x86_64.tar.xz) MD5: 3b1c7956ae485291ead9a7ee449c6947 | Подпись
Linux — Generic (glibc 2.12) (x86, 32-разрядная версия), TAR 8.0.21 764,5M
(mysql-8.0.21-linux-glibc2.12-i686.tar) MD5: 375c85e9c8722e2d0a8b1456d74c47f9 | Подпись
Linux — Generic (glibc 2.12) (x86, 64-разрядная версия), TAR 8.0.21 761,2M
(mysql-8.0.21-linux-glibc2.12-x86_64.tar) MD5: 9b6db37e59bdda23abac3dea8c2d36e0 | Подпись
Linux — Generic (glibc 2.17) (x86, 64-разрядная версия), сжатый архив TAR, минимальная установка
,
,
8.0.21 45,6M
(mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz) MD5: b67522852b142038056f3c4e9dd1e8cf | Подпись
Linux — Generic (glibc 2.17) (x86, 64-разрядная версия), сжатый набор тестов TAR
Минимальная установка Test Suite
8.0.21 199,8M
(mysql-test-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz) MD5: bb55535c4811cf7b6ab4e2cf9394f5ec | Подпись
Linux — Generic (glibc 2.17) (x86, 64-разрядная версия), минимальная установка TAR
8.0.21 250,8M
(mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar) MD5: 2f102a9499badac72ea306219ff3832a | Подпись
.

MySQL — Gandi Документация по документации

MySQL — самая популярная система баз данных в Интернете. Он поддерживает популярные фреймворки приложений, такие как WordPress, Drupal или Magento, и является базой данных для многих веб-разработчиков.

MySQL версий 5.7 (Percona) и 8.0 (Percona) в настоящее время доступны на простом хостинге и могут использоваться со всеми языками.

Вы можете создать столько баз данных и пользователей, сколько захотите в своем экземпляре. Вы ограничены только размером диска, который вы можете увеличить в любое время до 1 ТБ.

Службой базы данных MySQL можно управлять из аварийной консоли SSH или из веб-интерфейса. В этой статье описывается, как получить доступ, создавать и управлять базами данных MySQL на простом хостинге.

Служба базы данных MySQL доступна на localhost , и получить доступ к службе извне экземпляра невозможно.

Предпочтительный способ подключения — через сокет Unix, расположенный по пути, указанному ниже. Существуют пользователь по умолчанию ( root ) и база данных ( default_db ), поэтому вы можете быстро протестировать ваше соединение и выполнить задачи управления.

Настройки соединения по умолчанию:

 Хост: localhost
Сокет: /srv/run/mysqld/mysqld.sock
Пользователь: root
Пароль: <нет>
База данных: default_db
 

Рекомендуется создавать новых пользователей с надежными учетными данными и новыми базами данных для ваших веб-сайтов или приложений. Ниже вы найдете инструкции по выполнению этих и других задач управления.

Вы можете получить доступ к своей базе данных Simple Hosting из раздела Administration на странице управления вашего экземпляра.

Нажмите кнопку « Перейти к phpMyAdmin » в виджете «База данных » и введите свой идентификатор пользователя экземпляра и пароль экземпляра для аутентификации с помощью панели управления.

Когда вы закончите, вы увидите страницу входа phpMyAdmin.

По умолчанию пользователь phpMyAdmin имеет root и пароль отсутствует. Поэтому введите в качестве пользователя root , оставьте пароль пустым и нажмите « Go ». После этого вы войдете в PHPmyAdmin и сможете управлять своими базами данных оттуда.

Чтобы создать базу данных, войдите в свой интерфейс phpMyAdmin со страницы администрирования Simple Hosting, а затем один раз нажмите на вкладку « Базы данных ».

Затем выберите имя для вашей базы данных и нажмите « Создать ».

Теперь вы захотите создать своих пользователей для базы данных.

Для этого используйте опцию « Привилегии », как только вы окажетесь на странице администрирования базы данных (нажмите на имя базы данных, чтобы перейти туда).Нажмите на ссылку « Добавить нового пользователя » и заполните форму, чтобы создать пользователя.

Чтобы импортировать базу данных для использования с простым хостингом Gandi, перейдите в интерфейс phpMyAdmin и нажмите вкладку « Импорт ».

Примечание

phpMyAdmin поддерживает сжатые файлы. Они должны быть в формате: «имя. (Формат). (Сжатие)»

Однако, если ваша база данных слишком большая, вам нужно будет загрузить ее файл .sql по sFTP в каталог / lamp0 / tmp .Затем вы можете найти файл и импортировать его из phpMyAdmin, не обнаружив ошибок, связанных с его слишком большим размером.

Чтобы получить доступ к базе данных MySQL через командную строку, вы должны сначала войти в свой экземпляр через консоль SSH.

Обратите внимание, что консоль автоматически отключится через несколько минут бездействия. Если это произойдет, вы можете просто инициировать новое соединение SSH без необходимости повторной активации консоли.

Доступ к вашей базе данных

После входа в консоль SSH вы можете подключиться к базе данных MySQL с клиентом MySQL с помощью этой строки (если пароль root не установлен):

Или, если вы уже определили пароль root, со следующим:

mysql -u root -p

Экспорт базы данных

Это полезно для создания резервных копий вашей базы данных.Чтобы сделать это, вы можете использовать команду mysqldump следующим образом (если вы хотите экспортировать все свои базы данных):

 mysqldump -u root -p --all-database> /srv/data/tmp/backup_mysql.sql
 

Или как это, если вы хотите экспортировать только один (заменив my_database на имя вашей базы данных):

 mysqldump -u root -p --database my_database> /srv/data/tmp/backup_mysql.sql
 

Можно также выполнять периодический автоматический экспорт, используя задание anacron.Для получения дополнительной информации об этом обратитесь к руководству Anacron.

Примечание

Обратите внимание, что только каталоги / srv / data / tmp и / srv / data / home могут быть записаны — за исключением виртуальных хостов. Следовательно, мы рекомендуем создать специальный каталог для экспорта MySQL, чтобы собрать их в одном месте.

Можно изменить некоторые параметры конфигурации, отредактировав файл custom.cnf в вашем экземпляре. Однако некоторые параметры не могут быть изменены, чтобы гарантировать правильное функционирование экземпляра.

Чтобы изменить конфигурацию, получите доступ к своему экземпляру через SFTP и загрузите файл /lamp0/etc/myqsql/custom.cnf.

Отредактируйте файл локально, добавив параметры, которые вы хотите изменить. Значения, которые не являются изменениями, останутся со значениями по умолчанию.

Когда вы будете удовлетворены своими изменениями, загрузите файл в свой экземпляр, заменив оригинал. Вы также можете добавить другие файлы параметров в / lamp0 / etc / myqsql / до тех пор, пока расширение каждого файла «.cnf».

Чтобы изменения вступили в силу, необходимо перезапустить экземпляр.

Можно сбросить пароль пользователя MySQL root непосредственно из интерфейса Gandi, нажав кнопку « Сброс пароля ».

После того, как вы это сделаете, вы можете войти в MySQL с пользователем root и пустым паролем. Сброс пароля пользователя root никак не повлияет на вашу базу данных.

Примечание

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

Вы можете получить доступ к журналам базы данных из панели управления вашего экземпляра через sFTP или SSH консоль.

  • error.log : журналы, связанные с сервером MySQL. Вы можете просматривать таблицы, которые разбились и были отремонтированы.
  • slow-query.log : Здесь вы можете просмотреть запросы, выполнение которых занимает необычно много времени. Это может произойти в случае, когда некоторые таблицы заблокированы.

Примеры журналов

Следующий вывод показывает, что MySQL перезапустился:

 120614 16:09:59 [Примечание] Плагин «FEDERATED» отключен.InnoDB: куча памяти InnoDB отключена
InnoDB: мьютексы и rw_locks используют атомарные встроенные функции GCC
InnoDB: сжатые таблицы используют zlib 1.2.6
120614 16:09:59 InnoDB: Инициализация пула буферов, размер = 8.0M
120614 16:09:59 InnoDB: завершена инициализация пула буферов
120614 16:09:59 InnoDB: самый высокий поддерживаемый формат файла - Barracuda.
InnoDB: порядковый номер журнала в файлах ibdata не совпадает
InnoDB: порядковый номер журнала в ib_logfiles!
120614 16:09:59 InnoDB: База данных не была нормально закрыта!
InnoDB: запуск восстановления после сбоя.InnoDB: чтение информации табличного пространства из файлов .ibd ...
InnoDB: восстановление возможных полузаписанных страниц данных из двойной записи
InnoDB: буфер ...
120614 16:10:00 Плагин InnoDB 1.0.17 запущен; регистрационный порядковый номер 2657932
120614 16:10:00 [Примечание] / usr / sbin / mysqld: готов к подключению.
Версия: сокет '5.1.61-2': порт /srv/run/mysqld/mysqld.sock: 0 (Debian)
 

В этом выводе показано, что таблицы вашей базы данных были проверены; если кажется, что таблицы потерпели крах, MySQL пытается восстановить их автоматически:

 120614 16:04:45 [ОШИБКА] / usr / sbin / mysqld: Таблица './ wp / wp_comments 'помечен как аварийный и должен быть восстановлен
120614 16:04:45 [Предупреждение] Проверка таблицы: './wp/wp_comments'
120614 16:04:45 [ОШИБКА] / usr / sbin / mysqld: Таблица './wp/wp_links' помечена как аварийная и должна быть исправлена
120614 16:04:45 [Предупреждение] Проверка таблицы: './wp/wp_links'
120614 16:04:45 [ОШИБКА] / usr / sbin / mysqld: Таблица «./wp/wp_options» помечена как аварийная и должна быть исправлена
120614 16:04:45 [Предупреждение] Проверка таблицы: './wp/wp_options'
 
,

MySQL — Atlassian Документация

На этой странице описано, как подключить Bamboo к базе данных MySQL.

На этой странице:

1. Создание и настройка базы данных MySQL

Чтобы ваша внешняя база данных MySQL хорошо работала с Bamboo, она должна иметь возможность использовать следующее:

  • utf8 кодировок набора символов вместо latin1
  • utf8_bin Сортировка
  • механизм хранения InnoDB
  • (рекомендуется, не требуется) lower_case_table_names = 1

Установка lower_case_table_names = 1 может нарушить работу других приложений Atlassian.Для получения дополнительной информации см. Шаги.

Мы также рекомендуем, чтобы ваш сервер баз данных MySQL был настроен на использование механизма хранения InnoDB (такого как MyISAM). Кроме того, вы можете настроить JDBC-соединение Bamboo с вашей базой данных MySQL, чтобы любые таблицы, которые Bamboo создает в этой базе данных, выполнялись с использованием механизма базы данных InnoDB.

Администратор базы данных MySQL может легко создать и настроить базу данных MySQL для Bamboo, выполнив следующие команды MySQL:

  mysql> CREATE DATABASE набор бамбуковых символов CHATACTER utf8 COLLATE utf8_bin;
mysql> ПРЕДОСТАВЛЯЙ ВСЕМ ПРИВИЛЕГИИ НА БАМБА.* «Bamboouser» @ «localhost», идентифицируемый «паролем»;
mysql> FLUSH PRIVILEGES;
mysql> QUIT
  

Это создает пустую базу данных MySQL для Bamboo с именем bamboo , где:

  • bamboouser — имя учетной записи пользователя для базы данных Bamboo MySQL
  • localhost — имя хоста сервера базы данных MySQL пароль
  • пароль — пароль для этой учетной записи пользователя

Для получения дополнительной информации о настройке кодировки набора символов и сопоставления для баз данных MySQL Bamboo, обратитесь к документации MySQL 5 — Указание наборов символов и сопоставлений.

Чтобы проверить, отключен ли режим NO_AUTO_VALUE_ON_ZERO, выполните этот запрос на своем сервере MySQL:

  SELECT @@ SQL_MODE, @@ GLOBAL.SQL_MODE;  

Первый режим — это режим для сеанса, второй — глобальные настройки для MySQL. Если глобальный режим содержит NO_AUTO_VALUE_ON_ZERO, его необходимо удалить, выполнив приведенный ниже запрос.

  SET GLOBAL sql_mode = 'NO_AUTO_VALUE_ON_ZERO';  

Дополнительную информацию можно найти в документации MySQL.

2. Подключение Bamboo к базе данных MySQL

Вы можете подключить Bamboo к MySQL одним из следующих способов:

  • с использованием JDBC
  • с использованием источника данных

JDBC обычно проще, и мы рекомендуем его использовать.

Подключение с использованием JDBC

1. Загрузите и установите драйвер JDBC

Драйверы JDBC для MySQL Enterprise Server: , не l

.