Как открыть файл sql в workbench

Обновлено: 06.07.2024

Я хочу выполнить текстовый файл, содержащий запросы SQL, в MySQL.

Я попытался запустить source/Desktop/test.sql и получил ошибку:

mysql>. \home\sivakumar\Desktop\test.sql ОШИБКА: не удалось открыть файл '\ home\sivakumar\Desktop\test.sql', ошибка: 2

Есть идеи, что я делаю не так?

ОТВЕТЫ

Ответ 1

Если вы в командной строке MySQL mysql> , вам нужно объявить файл SQL как source .

Ответ 2

У вас довольно много вариантов:

  • используйте клиент командной строки MySQL: mysql -h hostname -u user database < path/to/test.sql
  • Установите инструменты GUI MySQL и откройте свой файл SQL, затем выполните его
  • Используйте phpmysql, если база данных доступна через ваш веб-сервер

Ответ 3

вы можете выполнить инструкции mysql, которые были записаны в текстовом файле, используя следующую команду:

если ваша база данных еще не создана, сначала войдите в свой mysql, используя:

который должен это сделать!

Ответ 4

Все лучшие ответы хороши. Но на всякий случай кто-то хочет запустить запрос из текстового файла на удаленном сервере И сохранить результаты в файл (вместо показа на консоли), вы можете сделать это:

Надеюсь, это поможет кому-то.

Ответ 5

Мой любимый вариант сделать это будет:

Я использую это таким образом, потому что, когда вы связываете это с "", вы избегаете неправильного пути и ошибок с пробелами и - и, возможно, больше проблем с символами, с которыми я не сталкивался.

С комментарием @elcuco я предлагаю использовать эту команду вместе с [пробелом], поэтому она говорит bash игнорировать сохранение в истории, это будет работать из коробки в большинстве bash.

если ваша команда все еще сохраняется в истории, просмотрите следующие решения:

дополнительная безопасность редактирования

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

Ответ 6

Я пришел сюда, ища этот ответ, и вот что я нашел, работает для меня лучше: Примечание. Я использую Ubuntu 16.xx

mysql -u <your_user> - p

Надеюсь это поможет.

Ответ 7

Укажите путь к файлу .sql как:

See In The Image:

Ответ 8

Не указывать одинарные кавычки.

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

Ответ 9

Никогда не рекомендуется передавать аргумент пароля непосредственно из командной строки, он сохраняется в файле

/.bash_history и может быть доступен из других приложений.

Используйте это вместо:

Ответ 10

Ответ 11

Скорее всего, вам просто нужно изменить косую черту /blackslash: от

Таким образом, команда будет следующей:

Ответ 12

используйте следующее из командной строки mysql -

Не используйте цитату. Даже если путь содержит пробел (''), используйте никакую цитату вообще.

Ответ 13

Так как mysql -u yourusername -p yourpassword yourdatabase < text_file не работал на удаленном сервере (Amazon EC2).

Сначала убедитесь, что база данных создана.

Ответ 14

В будущем, я нашел, что это работает против вышеупомянутых методов под Windows в консоли msql:

Если ваш корневой диск не называется "c", тогда просто обменивайтесь тем, что вы вызываете. Сначала попробуйте обратную косую черту, если они не работают, попробуйте косую черту. Если они также не работают, убедитесь, что у вас есть полный путь к файлу, расширение .sql для имени файла, и если ваша версия настаивает на полуколонах, убедитесь в этом и повторите попытку.

Ответ 15

вместо перенаправления я бы сделал следующее

Это выполнит файл path-to-sql-file

Ответ 16

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

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

Ответ 17

Так много способов сделать это.

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

Это должно быть выполнено из каталога mysqld.exe, отсюда и CD.

Надеюсь, что это полезно, а не просто излишне.

Ответ 18

Вы можете использовать SQLyog Выполнить SQL script для выполнения файла .sql. Выберите файл и нажмите "Выполнить".:-) Вы получаете 30-дневную бесплатную пробную версию.

И вы получаете ошибку, потому что у вас есть цитаты вокруг имени файла.

Файл должен находиться на клиентском хосте, где вы используете mysql. Имя файла должно быть абсолютным путем, указывающим полное имя файла, или имя пути, которое указано относительно каталога, в котором вы вызывали mysql. Например, если вы запустили mysql на компьютере под управлением Windows в каталоге C:\mysql, а ваш файл script - my_commands.sql в каталоге C:\scripts, обе следующие команды SOURCE сообщают mysql выполнить SQL-запросы в файл:

mysql > SOURCE C:\scripts\my_commands.sql;

Другой способ выполнить файл script - это присвоить ему имя в командной строке mysql. Вызвать mysql и использовать < оператор перенаправления ввода, чтобы указать файл для чтения ввода запроса:

Веб-разработчик растёт вместе с проектами, которые он создаёт и развивает. С ростом проектов увеличивается сложность программной части, неизбежно возрастает количество обрабатываемых ею данных, а так же сложность схемы данных. Общение с другими вебщиками показывает, что огромной популярностью среди нас пользуются базы данных MySQL, а для управления ими - небезызвестный PHPMyAdmin. Переходя от маленьких проектов к большим, от cms к фреймворкам, многие, как и я, остаются верны MySQL. Однако для проектирования сложной базы данных с большим количеством таблиц и связей, возможностей PHPMyAdmin катастрофически не хватает. Поэтому я решил написать обзор MySQL Workbench - замечательной бесплатной десктопной программы для работы с MySQL.

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

MySQL Workbench — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL.

Пример схемы данных MySQL Workbench

Должен сказать, что программа действительно великолепная. Она позволяет быстро и с удовольствием накидывать схемы данных проекта, проектировать сущности и связи между ними, безболезненно внедрять изменения в схему и так же быстро и безболезненно синхронизировать её с удалённым сервером. А графический редактор EER-диаграмм, напоминающих забавных таракашек, позволяет увидеть общую картину модели данных и насладиться её лёгкостью и элегантностью :) После первой же пробы этот инструмент становится незаменимым помощником в боевом арсенале веб-программиста.

Дистрибутив MySQL Workbench доступен на этой странице. Самая свежая версия программы на момент написания статьи - Version 6.1. Перед скачиванием требуется выбрать одну из следующих платформ:

  • Microsoft Windows (доступны MSI Installer и ZIP архив)
  • Ubuntu Linux
  • Fedora
  • Red Hat Enterprise Linux / Oracle Linux
  • Mac OS X

После выбора платформы вам предлагают зарегистрироваться или авторизоваться в Oracle. Если не хотите, внизу есть ссылка "No thanks, just start my download" - жмите на неё ;)

Начало работы

Стартовый экран программы отражает основные направления её функциональности - проектирование моделей баз данных и их администрирование:

Стартовый экран MySQL Workbench

В верхней части экрана находится список подключений к MySQL серверам ваших проектов, а список последних открытых моделей данных - в нижней части экрана. Работа обычно начинается с создания схемы данных или загрузки существующей структуры в 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 Keys" дочерней таблицы, вводим имя внешнего ключа и выбираем таблицу-родителя. Далее в средней части вкладки в графе Column выбираем поле-ключ из дочерней таблицы, а в графе Referenced Column - соответствующее поле из родительской таблицы (тип полей должен совпадать). При создании внешних ключей в дочерней таблице автоматически создаются соответствующие индексы.

В разделе "Foreign Key Options" настраиваем поведение внешнего ключа при изменении соответствующего поля (ON UPDATE) и удалении (ON DELETE) родительской записи:

  • RESTRICT - выдавать ошибку при изменении / удалении родительской записи
  • CASCADE - обновлять внешний ключ при изменении родительской записи, удалять дочернюю запись при удалении родителя
  • SET NULL - устанавливать значение внешнего ключа NULL при изменении / удалении родителя (неприемлемо для полей, у которых установлен флаг NOT NULL!)
  • NO ACTION - не делать ничего, однако по факту эффект аналогичен RESTRICT

В приведённом примере я добавил к дочерней таблице UserProfile внешний ключ для связи с родительской таблицей User. При редактировании поля userId и удалении позиций из таблицы User аналогичные изменения будут автоматически происходить и со связанными записями из таблицы UserProfile.

Наполнение таблицы базовыми данными

При создании проекта в базу данных часто нужно добавлять стартовые данные. Это могут быть корневые категории, пользователи-администраторы и т.д. В управлении таблицами MySQL Workbench для этого существует вкладка "Inserts":

Наполнение таблицы базовыми данными

Как видно из примера, в случае, если перед записью в базу данных к данным нужно применить какую-то функцию MySQL, это делается с помощью синтаксиса \func functionName('data'), например, \func md5('password').

После ввода данных необходимо сохранить их в локальную базу данных нажатием на кнопку "Apply Changes".

Создание EER диаграммы (диаграммы "сущность-связь")

Для представления схемы данных, сущностей и их связей в графическом виде в MySQL Workbench существует редактор EER-диаграмм. Для создания диаграммы в верхней части экрана управления базой данных дважды кликаем на иконку "+Add Diagram":

Создание EER диаграммы сущность-связь

В его интерфейсе можно создавать и редактировать таблицы, добавлять между ними связи различных типов. Чтобы добавить уже существующую в схеме таблицу на диаграмму, просто перетащите её из панели "Catalog Tree".

EER диаграмма в MySQL Workbench

Для экспорта схемы данных в графический файл выберите "File → Export", а затем один из вариантов (PNG, SVG, PDF, PostScript File).

Импорт существующей схемы данных (из SQL дампа)

Если у нас уже есть схема данных, её можно без труда импортировать в MySQL Workbench для дальнейшей работы. Для импорта модели из SQL файла выбираем "File → Import → Reverse Engineer MySQL Create Script. ", после чего выбираем нужный SQL файл и жмём "Execute >"

Импорт схемы данной из SQL файла

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

Демо-проект из статьи доступен для скачивания по этой ссылке. Желаю успехов и красивых таракашек схем!

Откройте меню Пуск и наберите ‘Workbench’. В списке выберите MySQL Workbench.

Откроется окно, называемое домашним экраном.

Домашний экран

Домашний экран

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

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

Подключения

“Плитка” подключения

“Плитка” подключения

При наведении курсора мыши на подключение, у “плитки” отгибается уголок. Если нажать на этот “уголок”, отобразится информация о подключении: версия СУБД, дата последнего использования, адрес сервера СУБД, логин, и т.п.

Информация о подключении

Информация о подключении

В правом нижнем углу есть кнопка ‘Connect’, которая откроет данное подключение.

Подключение так же можно открыть, нажав на саму “плитку”.

Откройте первое подключение в списке.

После открытия подключения, открывается окно редактора SQL-запросов.

Окно редактора SQL-запросов

Окно редактора SQL-запросов

В центре мы видим окно редактирования запроса.

Обратно к домашнему экрану можно вернуться, нажав на иконку в левом верхнем углу окна.

Слева находится навигатор, отображающий основные задачи и список объектов БД.

В левом нижнем углу находится окно информации о выбранном объекте.

Справа находится окно помощи.

Внизу – окно истории запросов.

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

Выполнение запросов

Редактор SQL – Панель SQL-запроса

Редактор SQL – Панель SQL-запроса

Выполним запрос к базе world . Во-первых, выберем базу данных world как активную.

Для этого, найдите объект world в навигаторе, и выберете его двойным кликом, либо нажав правой кнопкой мыши и в контекстном меню выбрав Set as Default Schema .

Теперь можно выполнять запросы к базе world .

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

Для начала, запросим список таблиц в выбранной базе. Для этого, в окне редактирования SQL-запроса, напишем

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

Затем нажмем на кнопку выполнения запроса (желтая молния), или выберем в меню Query → Execute (All or Selection) . Клавиатурное сокращение – ctrl + shift + enter

  • 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: Включить перенос по словам.

Откроется окно результата запроса.

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

  • Result Grid – в виде таблицы (по умолчанию)
  • Form Editor – в виде формы. Каждая запись открывается на отдельной странице, в верхней части окна есть стрелки для навигации по записям.
  • Field Types – отображает типы атрибутов результата.
  • Query Stats – отображает различную статистику запроса
  • Execution Path – показывает алгоритм работы оптимизатора

Посмотрим, как устроена таблица Country . Для этого, выполним команду

и выберем стиль отображения результата Field Types.

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

Комментарии в SQL начинаются с двойного дефиса, например:

В данный момент нас интересуют атрибуты (колонки) Name – названия страны и LifeExpectancy – средняя продолжительность жизни граждан.

Выведем список стран со средней продолжительностью жизни граждан более 80 лет. Для этого выполним запрос

Другой запрос, который можно выполнить к таблице Country – количество стран по форме правления.

Для создания базы данных можно выполнить запрос

Создайте базу данных с названием myFirstDatabase :

Чтобы отобразить созданную БД в списке объектов, нажмите на пустое место в списке правой кнопкой мыши и выберете Refresh All .

Выберите myFirstDatabase как активную.

Создание таблицы

Создадим таблицу People , состоящую из колонок id , name , birthday :

Замечание Существует графический инструмент создания таблиц. Разберем его, когда будем работать с инструментом графического проектирования БД.

Проверим, что таблица создалась:

Выведем содержимое таблицы:

Добавление и редактирование данных

При выборе всех столбцов таблицы, Workbench позволяет редактировать записи непосредственно через интерфейс результата запроса. Выберите стиль отображения результата Form Editor , и введите значения атрибутов name и birthday . Последнее вводится в формате YYYY-MM-DD , например для 1 сентября 2015 года введите 2015-09-01 .

Поле id оставьте пустым.

В правом нижнем углу окна результата можно увидеть кнопки Apply и Revert . Первая сгенерирует и выполнит SQL-запрос INSERT , а вторая отменит изменения.

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

еще раз, чтобы в этом убедиться.

Замечание Можно так же добавлять и редактировать записи в табличном отображении результата.

Удаление данных

Данные можно удалять из окна результатов, используя кнопку панели Delete selected rows .

Другой способ – выполнение SQL-запроса

Например, удалим из таблицы People запись с каким-либо значением id :

Подставьте вместо 1 какое-то из существующих значений.

Замечание По умолчанию, Workbench выполняет запросы с параметром SQL_SAFE_UPDATES . Этот параметр не позволяет производить запросы UPDATE и DELETE без указания условия WHERE с первичным ключом (в данном случае id ).

Экспорт

В навигаторе выберите Data Export . Выберите базы данных и таблицы, которые хотите экспортировать. При необходимости, отметте другие объекты, которые хотите экспортировать: Dump Stored Procedures and Functions , Dump Events , Dump Triggers .

Выберите Export to Self-Contained File и файл, в который будет сохранен экспорт.

Не отмечайте Include Create Schema : эта опция включит в экспорт выражение CREATE DATABASE .

Нажмите на кнопку Start Export .

Импорт

В навигаторе выберите Data Import/Restore . Выберите Import from Self-Contained File .

Выберите базу данных, в которую будет произведен импорт в выпадающем списке Default Target Schema . Можно так же создать новую БД, нажав на кнопку New…

В данной статье разбираюсь с WorkBench. Вот основные задачи, которые хочу записать в данной статье.

Экспорт/Импорт дампа из WorkBench

Экспорт дампа из WorkBench

Открываем MySQL и создаем, либо используем уже готовую instance

2

Открываем instance и сразу же обращаем внимание на DataExport

3

4

Если переносим на другой комп, на котором нет этой БД, то обязательно Include Create Schema

Далее, экспортируем и получаем такую вот картину

5

В принципе всё, на рабочем столе появляется дамп

6

Импорт дампа в WorkBench

7

После этого жмем на Refresh и смотрим, что произошло с нашей базой данных

8

Изменение данных в WorkBench

Вкладка Inserts в модели данных служит лишь для добавления новых записей! В LocalInstance же можно как добавлять новые записи так и изменять их. Примерно такая разница.

Добавление / Изменение данных через LocalInstance

9

После чего видим следующее

10

11

Как видно, WorkBench сам составит инструкцию UPDATE!

Вот какой результат у нас получается

19

Добавление данных через Inserts в модели данных

DataBase > ReverseEngeneering >Несколько раз Next и получаем такую вот диаграмму

12

13

И переходим на вкладку Inserts

14

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

15

Далее

После чего, делаем DataBase > Forward Engeneering и также, жмем несколько раз Next, единственное, что на странице выбора опций, нужно выбрать

16

Далее, выполняем скрипт и возвращаемся на LocalInstance

18

Всё! Данные в физической таблице!

Модели БД

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

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

Модель выглядит примерно следующим образом

19

Основные операции по моделям

File > NewModel

Получение модели из физической БД

DataBase>ReverseEngeneer

Создание физической БД из модели

DataBase > ForwardEngeneer

Внесение изменений в физическую БД или наоборот в модель из физической БД

DataBase > Synchronize

В другой статье я расскажу чуть более подробно как работать с моделями! А здесь пока всё! Спасибо за внимание!

Читайте также: