Mysql для новичка

dimagolov

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

Irishka

Новичок
Да хоть в чем, на любителя. Любыми инструментами для работы с MySQL. Я, например, люблю phpmyadmin, а бэкап делаю с помощью dbForge Studio for MySQL.
 

zerkms

TDD infected
Команда форума
Irishka
бэкапы проще создавать из командной строки. однажды созданный .bat (или .sh)-файл в будущем будет создавать дамп с помощью дабл-клика, а вот в dbForge придётся покликать поболее :)
 

Irishka

Новичок
zerkms
Ну да, только я все еще не могу сделать рабочий батник, вот и ковыряюсь в dbForge ))
 

zerkms

TDD infected
Команда форума
Код:
@echo off

echo Exporting dump.sql...
mysqldump --skip-opt --add-drop-database --add-drop-table --routines --disable-add-locks --create-options --quick --set-charset --disable-keys -u root --databases feed-ts > dump.sql

sed "s/DEFINER=.*\*\//DEFINER=CURRENT_USER\*\//g" dump.sql > dump.sql.bak
move /y dump.sql.bak dump.sql

set /p a="Done! Press any key."
вот мой. правда ему нужен ещё sed, чтобы переименовать definer'а хранимых процедур и триггеров. если не используются - то 2 строки sed + move удалить.
 

Irishka

Новичок
zerkms
А ничего страшного, что там --add-drop-database --add-drop-table ? это базу не удалит? ))

У меня такой:

C:\Server\MySQL\bin\mysqldump.exe -u root -p***** -r monitoring > "D:\Export\_Dump\monitoring_%date%_%time:~0,2%-%time:~3,2%.sql"

Этот дамп порождает файл, в котором есть только это:

Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
:)
О! Твоя версия сработала, правда там кодировка не встала... :)
 

zerkms

TDD infected
Команда форума
Irishka
эм... всё там с кодировкой нормально :) проверено миллионом запусков и несколькими годами использования :)
 

Irishka

Новичок
zerkms
Там кракозяблики вместо русского языка. Такое бывает, когда бэкап phpmyadmin-ом делаешь :)
 

zerkms

TDD infected
Команда форума
Irishka
просто ваш редактор не умеет утф :) установите нормальный.
 

Irishka

Новичок
zerkms
Точно :)
Но не восстановится ли потом с этого бэкапа база в такой же утф? У меня она в cp1251.
 

zerkms

TDD infected
Команда форума
Irishka
нет.
правило простое:
кодировка данных дампа (utf8) должна совпадать с прописанной в начале кодировкой в SET NAMES

а какие кодировки прописаны на таблицы в DEFAULT CHARSET таблиц - не важно.
 

Irishka

Новичок
Короче у меня в SET NAMES cp1251. Сейчас восстановила базу из бэкапа- кракозяблики. Надо базу что ли делать в утф или можно в батнике указать cp1251?
 

zerkms

TDD infected
Команда форума
ещё раз:
дамп должен быть ВСЕГДА в utf8. в начале дампа должна быть строчка /*!40101 SET NAMES utf8 */;

кодировка таблиц при этом может быть любой, хоть cp1251, хоть cp1252 - при заливке дампа из utf8 оно конвертнётся в нужное.
 

zerkms

TDD infected
Команда форума
Irishka
так не бывает.
если всё так как я описал выше - значит данные уже в неправильной кодировке хранятся.
 

Irishka

Новичок
zerkms
Открываю дамп, а там все, что вместо русских символов - кракозяблики. Файл сразу непонятный создался :(
 

zerkms

TDD infected
Команда форума
Irishka
я уже спрашивал ведь:
в какой кодировке данные в файле и что написано в SET NAMES?
 
Сверху