mysql workbench как запустить скрипт
Основы работы с MySQL Workbench: быстрый старт, управление схемой данных
В первой части обзора я расскажу о самых основах работы с программой, так что, можете использовать эту статью как руководство начинающего пользователя. Вторая часть будет посвящена использованию Workbench в бою при работе с удалённым сервером. В ней я дам базовые инструкции и рекомендации по настройке подключения сервера и синхронизации с ним.
MySQL Workbench — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL.
Должен сказать, что программа действительно великолепная. Она позволяет быстро и с удовольствием накидывать схемы данных проекта, проектировать сущности и связи между ними, безболезненно внедрять изменения в схему и так же быстро и безболезненно синхронизировать её с удалённым сервером. А графический редактор EER-диаграмм, напоминающих забавных таракашек, позволяет увидеть общую картину модели данных и насладиться её лёгкостью и элегантностью 🙂 После первой же пробы этот инструмент становится незаменимым помощником в боевом арсенале веб-программиста.
Скачать MySQL Workbench
Начало работы
Создание и редактирование модели данных
Для добавления модели нажимаем плюсик рядом с заголовком «Models» или выбираем «File → New Model» (Ctrl + N):
На этом экране вводим имя базы данных, выбираем кодировку по умолчанию и, если нужно, заполняем поле комментария. Можно приступать к созданию таблиц.
Добавление и редактирование таблицы
Список баз данных проекта и список таблиц в пределах базы данных будет располагаться во вкладке «Physical Schemas». Чтобы создать таблицу, дважды кликаем на «+Add Table»:
Откроется удобный интерфейс для редактирования списка полей и их свойств. Здесь мы можем задать название поля, тип данных, а так же установить для полей различные атрибуты: назначить поле первичным ключом (PK), пометить его Not Null (NN), бинарным (BIN), уникальным (UQ) и другие, установить для поля авто-инкремирование (AI) и значение по умолчанию (Default).
Управление индексами
Добавлять, удалять и редактировать индексы таблиц можно во вкладке «Indexes» интерфейса управления таблицей:
Вводим название индекса, выбираем его тип, затем галочками помечаем в нужном порядке список полей, участвующих в данном индексе. Порядок полей будет соответствовать порядку, в котором были проставлены галочки. В данном примере я добавил уникальный индекс к полю username.
Связи между таблицами
Установка внешних ключей и связывание таблиц возможно только для таблиц InnoDB (эта система хранения данных выбирается по умолчанию). Для управления связями в каждой таблице находится вкладка «Foreign Keys»:
В разделе «Foreign Key Options» настраиваем поведение внешнего ключа при изменении соответствующего поля (ON UPDATE) и удалении (ON DELETE) родительской записи:
В приведённом примере я добавил к дочерней таблице UserProfile внешний ключ для связи с родительской таблицей User. При редактировании поля userId и удалении позиций из таблицы User аналогичные изменения будут автоматически происходить и со связанными записями из таблицы UserProfile.
Наполнение таблицы базовыми данными
При создании проекта в базу данных часто нужно добавлять стартовые данные. Это могут быть корневые категории, пользователи-администраторы и т.д. В управлении таблицами MySQL Workbench для этого существует вкладка «Inserts»:
Как видно из примера, в случае, если перед записью в базу данных к данным нужно применить какую-то функцию MySQL, это делается с помощью синтаксиса \func functionName(‘data’), например, \func md5(‘password’).
После ввода данных необходимо сохранить их в локальную базу данных нажатием на кнопку «Apply Changes».
Создание EER диаграммы (диаграммы «сущность-связь»)
Для представления схемы данных, сущностей и их связей в графическом виде в MySQL Workbench существует редактор EER-диаграмм. Для создания диаграммы в верхней части экрана управления базой данных дважды кликаем на иконку «+Add Diagram»:
В его интерфейсе можно создавать и редактировать таблицы, добавлять между ними связи различных типов. Чтобы добавить уже существующую в схеме таблицу на диаграмму, просто перетащите её из панели «Catalog Tree».
Для экспорта схемы данных в графический файл выберите «File → Export», а затем один из вариантов (PNG, SVG, PDF, PostScript File).
Импорт существующей схемы данных (из SQL дампа)
Если у нас уже есть схема данных, её можно без труда импортировать в MySQL Workbench для дальнейшей работы. Для импорта модели из SQL файла выбираем «File → Import → Reverse Engineer MySQL Create Script. «, после чего выбираем нужный SQL файл и жмём «Execute >»
В MySQL Workbench так же предусмотрен импорт и синхронизация модели данных нарямую с удалённым сервером. Для этого потребуется создать подключение удалённого доступа к MySQL, о которых я расскажу в продолжении данного обзора.
Демо-проект из статьи доступен для скачивания по этой ссылке. Желаю успехов и красивых таракашек схем!
Работа с СУБД MySQL. Использование инструмента MySQL Workbench.
Откройте меню Пуск и наберите ‘Workbench’. В списке выберите MySQL Workbench.
Откроется окно, называемое домашним экраном.
Домашний экран
В верхней части Вы можете видеть список соединений с СУБД. Эти элементы управления используются для подключения к СУБД и прямого управления.
В нижней части находится список моделей. Модели используются для визуального проектирования баз данных.
Подключения
При наведении курсора мыши на подключение, у “плитки” отгибается уголок. Если нажать на этот “уголок”, отобразится информация о подключении: версия СУБД, дата последнего использования, адрес сервера СУБД, логин, и т.п.
Информация о подключении
В правом нижнем углу есть кнопка ‘Connect’, которая откроет данное подключение.
Подключение так же можно открыть, нажав на саму “плитку”.
Откройте первое подключение в списке.
Редактор SQL-запросов
После открытия подключения, открывается окно редактора SQL-запросов.
Окно редактора SQL-запросов
В центре мы видим окно редактирования запроса.
Обратно к домашнему экрану можно вернуться, нажав на иконку в левом верхнем углу окна.
Слева находится навигатор, отображающий основные задачи и список объектов БД.
В левом нижнем углу находится окно информации о выбранном объекте.
Справа находится окно помощи.
Внизу – окно истории запросов.
В правом верхнем углу находятся элементы управления, позволяющие скрыть или отобразить боковые панели.
Выполнение запросов
Вы так же можете выбрать активную базу, выполнив запрос
Для начала, запросим список таблиц в выбранной базе. Для этого, в окне редактирования SQL-запроса, напишем
При введении запроса, окно помощи автоматически отображает подсказки по синтаксису вводимого запроса, если эта возможность включена. Чтобы включить автоматическую подсказку, нажмите на третью слева кнопку панели в окне помощи.
Другие кнопки панели окна SQL-запроса
Слева направо, кнопки:
Open an SQL Script File: Загружает содержимое ранее сохраненного запроса из файла.
Save SQL Script to File: Сохраняет запрос в файл
Execute SQL Script: Выполняет выделенную часть запроса, или весь запрос, если ничего не выделено.
Execute Current SQL script: Выполняет выражение, на котором находится текстовый курсор.
Stop the query being executed: Прерывает выполнение текущего запроса.
Toggle whether execution of SQL script should continue after failed statements: Переключает поведение при ошибках в выражениях. Если на кнопке отображен красный кружок, то выполнение запроса прерывается при ошибке выполнения одного из выражений.
Иначе, если отображена зеленая стрелка, выражения с ошибками пропускаются и выполнение запроса продолжается.
Commit: Подтверждает текущую транзакцию
Rollback: Отменяет текущую транзакцию
Toggle Auto-Commit Mode: Если включено, каждое выражение будет автоматически подтверждено.
Set Limit for Executed Queries: Ограничение количества результатов запроса.
Save Snippet: Сохранить текущее выражение или выбранный фрагмент для быстрого использования.
Beautify SQL: Форматировать текст запроса.
Find panel: Отобразить панель поиска в тексте запроса.
Invisible characters: Отображать “невидимые” символы.
Wrapping: Включить перенос по словам.
Откроется окно результата запроса.
В центре окна результата находится результат запроса – в нашем случае, список названий таблиц. Справа – кнопки выбора стиля отображения:
и выберем стиль отображения результата Field Types.
Запуск запроса на выполнение запускает все выражения, которые написаны в окне запроса. Если в окне запроса написано несколько выражений, разделенных точкой с запятой, они выполнятся последовательно. Поэтому, удаляйте либо комментируйте уже выполненные запросы.
Комментарии в SQL начинаются с двойного дефиса, например:
В данный момент нас интересуют атрибуты (колонки) Name – названия страны и LifeExpectancy – средняя продолжительность жизни граждан.
Выведем список стран со средней продолжительностью жизни граждан более 80 лет. Для этого выполним запрос
Другой запрос, который можно выполнить к таблице Country – количество стран по форме правления.
Создание базы данных
Для создания базы данных можно выполнить запрос
Создайте базу данных с названием myFirstDatabase :
Выберите myFirstDatabase как активную.
Создание таблицы
Проверим, что таблица создалась:
Выведем содержимое таблицы:
Добавление и редактирование данных
Поле id оставьте пустым.
еще раз, чтобы в этом убедиться.
Замечание Можно так же добавлять и редактировать записи в табличном отображении результата.
Удаление данных
Другой способ – выполнение SQL-запроса
Например, удалим из таблицы People запись с каким-либо значением id :
Подставьте вместо 1 какое-то из существующих значений.
Импорт и экспорт
Экспорт
Выберите Export to Self-Contained File и файл, в который будет сохранен экспорт.
Импорт
Как сгенерировать весь скрипт базы данных в MySQL Workbench?
Я хочу взять всю базу данных. Где я могу найти файл базы данных?
и есть ли способ записать всю базу данных со всеми данными в текстовый файл (например, в SQL Server)?
10 ответов:
Q#1: я бы предположил, что это где-то на вашем сервере MySQL? Q#2: Да, это возможно. Вы должны установить соединение с помощью администрирования сервера. Там вы можете клонировать любую таблицу или всю базу данных.
в этом уроке может быть полезным.
EDIT
поскольку предоставленная ссылка больше не активна, вот так что ответ описание процесса создания резервной копии БД в Workbench.
как создать SQL скрипты для вашей базы данных в Workbench
мастер проведет вас дальше, но если вы просто хотите скрипт, вы можете остановиться здесь.
предупреждение: скрипты генерируются с помощью CREATE команды. Если ты хочешь ALTER вам придется (насколько я могу судить) вручную изменить CREATEs на ALTERs.
это гарантированно сработает, я только что сделал это сегодня вечером.
в MySQL workbech есть опция экспорта данных
в MySQL Workbench 6 команды были перемещены, поскольку вкладка «администрирование сервера» исчезла.
теперь вы найдете опцию «экспорт данных» в разделе «Управление» при открытии стандартного подключения к серверу.
Я нашел этот вопрос, выполнив поиск в Google для «mysql workbench export database sql file». Ответы здесь не помогли мне, но я в конечном итоге нашел ответ, поэтому я публикую его здесь для будущих поколений, чтобы найти:
ответ
в MySQLWorkbench 6.0, выполните следующие действия:
вот скриншот для справки:
в верхнем меню MySQL Workbench нажмите на базу данных, а затем на forward engineer. В меню опций, с которым вы будете представлены, убедитесь, что у вас есть набор «generate insert statements for tables».
Я думаю, что есть также возможность скопировать файлы базы данных с одного сервера на другой, но у меня нет сервера, которые доступны в данный момент, поэтому я не могу проверить его.
удивительно экспорт данных в MySQL Workbench не только для данных, на самом деле он идеально подходит для создания сценариев SQL для всей базы данных (включая представления, хранимые процедуры и функции) всего за несколько кликов. Если вам нужны только скрипты и нет данных, просто выберите опцию «пропустить данные таблицы». Он может генерировать отдельные файлы или автономный файл. Вот более подробная информация об этой функции: http://dev.mysql.com/doc/workbench/en/wb-mysql-connections-navigator-management-data-export.html
Основы работы с MySQL Workbench: подключение удалённого сервера и синхронизация с ним
В первой части обзора программы MySQL Workbench я показал на примере основные принципы разработки модели данных и создания EER-диаграммы «сущность-связь». Пришло время применить MySQL Workbench в бою, поэтому сегодня я расскажу о создании подключения к удалённому серверу, выгрузке mwb модели на сервер, синхронизации обновлений схемы данных в процессе работы, а так же об управлении MySQL сервером с помощью программы MySQL Workbench.
Экспорт модели MySQL Workbench в SQL дамп
Если требуется записать дамп в файл, указываем путь до файла в поле «Output SQL Script File» (если оставить поле пустым, SQL скрипт можно будет скопировать на последнем шаге в буфер обмена). Мы видим окно настроек экспорта. Настройки стандартные, чтобы понять их суть, достаточно перевести их названия. Поясню только то, что галочка «Generate INSERT Statements for Tables» включает в дамп базовые данные, располагающиеся во вкладке «Inserts» интерфейса редактирования таблиц модели. После нажатия «Next» мы видим список того, что вообще можно экспортировать. Для экспорта таблиц выбираем «Export MySQL Table Objects», а чтобы экспортировать их выборочно, нажимаем «Show Filter» и выбираем нужные нам таблицы:
Нажав «Next» мы увидим в окне готовый SQL скрипт, откуда сможем скопировать его в буфер обмена или же записать в какой-либо файл.
Создание удалённого подключения к серверу MySQL
На стартовом экране нажимаем плюсик рядом с надписью или выбираем «Database → Manage Connections. «, в открывшемся окне нажимаем кнопку «New». MySQL Workbench предлагает три способа подключения к серверу: прямое подключение через пользователя, которому разрешён удалённый доступ к MySQL (обычно доступ таких пользователей ограничивают по ip), socket / pipe подключение через файл сокета (для Unix) или pipe (для Windows), а так же подключение через ssh-туннель (требует наличие ssh доступа и юзера ssh и MySQL с соответствующими правами). Рассмотрим варианты подключения к удалённому серверу:
Через удалённого пользователя MySQL (Standard: TCP/IP)
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP»:
Если что-то пошло не так, проверяем, включен ли у нашего пользователя удалённый доступ, а так же наличие ip адреса нашего компьютера в списке разрешённых для данного юзера.
Через SSH туннель (TCP/IP over SSH)
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP over SSH»:
Список доступных подключений можно просмотреть в диалоговом окне, выбрав «Database → Manage Connections. «
Синхронизация структуры данных
Для синхронизации структуры базы данных и локальной модели в MySQL Workbench существует специальный инструмент. Открыв нужную модель, выбираем «Database → Synchronize Model. » (Ctrl + Shift + G), после чего мы можем выбрать одно из сохранённых удалённых подключений и отредактировать его параметры. Жмём «Next» для подключения к базе данных:
После подключения к серверу и нажатия «Next» мы увидим список моделей (в левой колонке) и баз данных (в правой колонке), доступных для синхронизации:
Выбрав галочкой нужную базу и схему, нажимаем «Next», запуская процедуру сравнения структур удалённой базы данных и нашей модели:
После завершения процедуры мы можем увидеть список различий между нашей схемой данных и удалённой базой:
Просмотрев SQL запросы, нажимаем «Execute >», запуская этим выполнение синхронизации. Если всё пройдёт успешно, мы увидим такой отчёт:
В случае возникновения ошибок их лог отобразится в этом же диалоговом окне. Некоторые из них разобраны в конце этой статьи 😉
Выгрузка на сервер схемы и стартовых данных
Описанная выше синхронизация осуществляет лишь объединение структуры схемы данных удалённой базы и локальной модели, но никак не затрагивает стартовые данные, внесённые в модель («Inserts»). Если требуется выгрузить их, выбираем «Database → Forward Engineer. » (Ctrl + G), затем выбираем одно из сохранённых ранее подключений (или создаём новое) и нажимаем «Next». В остальном механизм выгрузки аналогичен механизму экспорта mwb модели, описанному в начале статьи. Его можно так же использовать, если требуется простая выгрузка схемы данных на сервер без синхронизации.
Администрирование базы данных
MySQL Workbench может быть прекрасной альтернативой PHPMyAdmin и в администрировании данных. Потребуется лишь создать подключение к MySQL серверу. Поскольку я использую Workbench с самого старта разработки, настроенное подключение у меня уже имеется в наличии. Кликаем на нужное подключение на стартовом экране или выбираем «Database → Connect to Database. » (Ctrl + U) и выбираем подключение из списка.
Список доступных для редактирования баз данных можно увидеть в левой панельке в разделе «SCHEMAS». Открыв нужную базу данных, можно увидеть список таблиц в ней:
В правой же области мы можем видеть вкладки разных видов, к примеру, на скриншоте выше открыта вкладка составления SQL запроса, в которой есть масса полезных фишек и примочек, помогающих в его редактировании, которыми я, признаться, ни разу не пользовался 🙂 Выполнять запросы можно комбинацией клавиш Ctrl + Enter.
Управление сервером, создание и восстановление бэкапов
Создать backup базы данных очень просто, выбрав Server → Data Export при наличии активного подключения к удалённому серверу:
Крутизна, да? 🙂 Можно бэкапить как всю базу, так и по частям. Можно хранить все бэкапы удобно и упорядоченно. Блин, можно всё что хочешь!
Восстановить backup тоже проще простого. Выбираем Server → Data Import, находим нужный файл и не долго думая нажимаем «Start Import»:
В общем, да, в MySQL Workbench есть целая куча всего для управления сервером баз данных: управление пользователями и их правами, управление настройками сервера (если у вашего пользователя есть соответствующий доступ). К примеру, выбрав Server → Server Status, мы можем посмотреть такую вот классную статистику нагрузки на MySQL:
Такую красивую статистику просто скушать хочется! Приятно смотреть на такую эффективную эффективность моих ключей и индексов 🙂 А вот над буфером InnoDB нужно подумать.
Вместо заключения (о некоторых подводных камнях)
Вдохновившись, в заключении я хотел написать хвалебный отзыв о том, на сколько же крута MySQL Workbench. Однако уровень её крутизны, думаю, прослеживается на протяжении всего обзора, а вот о некоторых подводных неприятностях, с которыми мне пришлось столкнуться, стоит упомянуть.
Программа периодически подвисает или «падает»
Решение: почаще сохраняться 😉 Так же практика показывает, что лучше не тыкать беспорядочно на всё подряд, а перед следующим действием ожидать завершения предыдущего.
Ошибка «Error 1292: Incorrect date / datetime value» при синхронизации
Суть проблемы: чаще всего такая ошибка возникает при попытке синхронизации с таблицей, в которой есть запись со значением ‘0000-00-00’ или ‘0000-00-00 00:00:00’ в полях типа DATE или DATETIME соответственно. В некоторых случаях настройки MySQL позволяют создавать такие записи, но не позволяют редактировать схему таблицы.
Решение: вообще, при синхронизации или экспорте данных MySQL Workbench добавляет специальные запросы, как бы оборачивая основной SQL код:
Вчитавшись в этот код, начинаешь думать, что программа пытается решить эту проблему самостоятельно. Парадокс в том, что для решения проблемы эти строки нужно удалить:
Ошибка «Error 1005: Can’t create table ‘. ‘ (errno: 150)» при синхронизации
Решение: внимательно следим за настройкой поведения внешних ключей. Если необходимо поведение SET NULL, у поля-ключа в дочерней таблице не должен стоять флаг NOT NULL.
Суть проблемы: независимо от настроек таблицы, все поля в «Inserts» имеют по умолчанию значение NULL, даже если такое значение не разрешено для данного поля. Соответственно, при выгрузке на сервер может возникнуть ошибка.
Решение: при добавлении стартовых данных следим за тем, чтобы значение NULL оставалось лишь в тех полях, где это разрешено. Если нужно сделать поле пустой строкой, делаем финт ушами: ставим в него курсор, нажимаем пробел, затем стираем его (во всяком случае, я не придумал ничего получше на такой случай :)).
Решение: закомментировать данную опцию:
Конец
Итак, мой обзор программы MySQL Workbench в двух частях (кстати, первую часть можно найти тут) подходит к концу. Буду рад, если читатель почерпнет для себя в нём что-то полезное или интересное 🙂