Как подключить wpf к mysql workbench
Перейти к содержимому

Как подключить wpf к mysql workbench

Создание простого приложения для обработки данных с помощью WPF и Entity Framework 6

Сценарий в этом руководстве в настоящее время заблокирован из-за проблемы с Visual Studio 2022, которая планируется исправить в будущем обновлении. Он должен работать с Visual Studio 2019 или более ранней версией.

В этом пошаговом руководстве показано, как создать базовое приложение «формы по данным» в Visual Studio. Приложение использует SQL Server LocalDB, базу данных Northwind, Entity Framework 6 (не Entity Framework Core) и Windows Presentation Foundation для .NET Framework (не .NET Core или .NET 5 или более поздней версии). В нем показано, как выполнять базовую привязку данных с помощью основного представления сведений, а также пользовательский навигатор привязок с кнопками «Переместить далее«, «Переместить назад«, » Перейти к началу«, » Переместить в конец«, «Обновить » и «Удалить«.

Эта статья посвящена использованию средств обработки данных в Visual Studio и не пытается подробно объяснить базовые технологии. Предполагается, что у вас есть базовый опыт работы с XAML, Entity Framework и SQL. В этом примере также не демонстрируется архитектура Model-View-ViewModel (MVVM), которая является стандартной для приложений WPF. Однако этот код можно скопировать в собственное приложение MVVM с несколькими изменениями.

Установка и подключение к Northwind

В этом примере используется SQL Server Express LocalDB и пример базы данных Northwind. Если поставщик данных ADO.NET для этого продукта поддерживает Entity Framework, он также должен работать с другими продуктами базы данных SQL.

Если у вас нет SQL Server Express LocalDB, установите его на странице скачивания SQL Server Express или с помощью Visual Studio Installer. В Visual Studio Installer можно установить SQL Server Express LocalDB как часть рабочей нагрузки Разработка классических приложений .NET или в качестве отдельного компонента.

Установите пример базы данных Northwind, выполнив следующие действия.

В Visual Studio откройте окно обозревателя объектов SQL Server . (Обозреватель объектов SQL Server устанавливается как часть рабочей нагрузки хранилища данных и обработки в Visual Studio Installer.) Разверните узел SQL Server . Щелкните правой кнопкой мыши экземпляр LocalDB и выберите «Создать запрос«.

Откроется окно редактора запросов.

Скопируйте скрипт Transact-SQL Northwind в буфер обмена. Этот скрипт T-SQL создает базу данных Northwind с нуля и заполняет ее данными.

Вставьте скрипт T-SQL в редактор запросов и нажмите кнопку «Выполнить «.

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

Настройка проекта

В Visual Studio создайте проект приложения WPF на C#.

Добавьте пакет NuGet для Entity Framework 6. В обозревателе решений выберите узел проекта. В главном меню выберите «Управление пакетами NuGetproject>».

Manage NuGet Packages menu item

В диспетчере пакетов NuGet щелкните ссылку «Обзор «. Entity Framework, вероятно, является лучшим пакетом в списке. Нажмите кнопку «Установить» в правой области и следуйте инструкциям. В окне вывода показано, когда установка завершится.

Entity Framework NuGet Package

Теперь можно использовать Visual Studio для создания модели на основе базы данных Northwind.

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

Щелкните правой кнопкой мыши узел проекта в обозревателе решений и последовательно выберите Добавить>Новый элемент. В левой области в узле C# выберите » Данные » и в средней области выберите ADO.NET «Модель данных сущности«.

Entity Framework Model New Item

Вызов модели Northwind_model и нажмите кнопку «ОК«. Откроется мастер модели данных сущности . Выберите конструктор EF из базы данных и нажмите кнопку «Далее«.

EF Model from Database

На следующем экране введите или выберите подключение LocalDB Northwind (например, (localdb)\MSSQLLocalDB), укажите базу данных Northwind и нажмите кнопку «Далее«.

На следующей странице мастера выберите таблицы, хранимые процедуры и другие объекты базы данных для включения в модель Entity Framework. Разверните узел dbo в представлении дерева и выберите «Клиенты«, » Заказы» и «Сведения о заказе«. Оставьте флажки по умолчанию и нажмите кнопку «Готово«.

Choose database Objects for the model

Мастер создает классы C#, представляющие модель Entity Framework. Классы являются обычными старыми классами C#, и они являются тем, что мы привязали к пользовательскому интерфейсу WPF. EDMX-файл описывает связи и другие метаданные, связывающие классы с объектами в базе данных. TT-файлы — это шаблоны T4, которые создают код, который работает с моделью и сохраняет изменения в базе данных. Все эти файлы отображаются в обозревателе решений в узле Northwind_model:

Solution Explorer EF model files

Область конструктора для EDMX-файла позволяет изменять некоторые свойства и связи в модели. Мы не будем использовать конструктор в этом пошаговом руководстве.

TT-файлы являются общими целями, и вам нужно настроить один из них для работы с привязкой данных WPF, для которой требуется ObservableCollections. В обозревателе решений разверните узел Northwind_model, пока не найдете Northwind_model.tt. (Убедитесь, что вы не находитесь в ФАЙЛЕ .Context.tt , который находится непосредственно под EDMX-файлом .)

Замените первое вхождение HashSet<T>ObservableCollection<T> около строки 51. Не заменяйте второй экземпляр HashSet.

Нажмите клавишу F5 или CTRL+F5 , чтобы создать и запустить проект. При первом запуске приложения классы моделей видны мастеру источников данных.

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

Привязка модели к странице XAML

Можно написать собственный код привязки данных, но гораздо проще позволить Visual Studio сделать это для вас.

В главном меню выберите «Добавить новый источник данных«>, чтобы открыть мастер настройки источника данных. Выберите объект , так как вы привязываются к классам модели, а не к базе данных:

Data Source Configuration Wizard with Object Source

Разверните узел проекта и выберите «Клиент«. (Источники для заказов автоматически создаются из свойства навигации Orders в Customer.)

Add entity classes as data sources

Нажмите кнопку Готово.

Перейдите к MainWindow.xaml в представлении кода. В этом примере мы сохраняем простой код XAML. Измените заголовок MainWindow на что-то более описательное, и увеличьте его высоту и ширину до 600 x 800 на данный момент. Вы всегда можете изменить его позже. Теперь добавьте эти три определения строк в основную сетку, одну строку для кнопок навигации, одну для сведений о клиенте и одну для сетки, в которую отображаются их заказы:

Теперь откройте файл MainWindow.xaml , чтобы просмотреть его в конструкторе. Это приводит к отображению окна «Источники данных » в поле окна Visual Studio рядом с панелью элементов. Щелкните вкладку, чтобы открыть окно, или нажмите клавиши SHIFT+ALT+D или выберите «Просмотреть> другиеисточники данныхWindows>». Мы будем отображать каждое свойство в классе Customers в отдельном текстовом поле. Сначала щелкните стрелку в поле со списком «Клиенты» и выберите «Сведения«. Затем перетащите узел в середину области конструктора, чтобы конструктор знал, что он будет выходить в средней строке. Если вы не нашли его, вы можете указать строку вручную в XAML. По умолчанию элементы управления помещаются по вертикали в элемент сетки, но на этом этапе их можно упорядочить в форме. Например, можно поместить текстовое поле «Имя» сверху над адресом. Пример приложения для этой статьи переупорядочение полей и их переупорядочение на два столбца.

Customers data source binding to individual controls

В представлении кода теперь можно увидеть новый Grid элемент в строке 1 (средней строке) родительской сетки. Родительская сетка имеет DataContext атрибут, ссылающийся на CollectionViewSource, добавленный в Windows.Resources элемент. Учитывая, что контекст данных, когда первое текстовое поле привязывается к Address, это имя сопоставляется со Address свойством в текущем Customer объекте в CollectionViewSource.

Когда клиент отображается в верхней половине окна, вы хотите увидеть свои заказы в нижней половине. Вы отображаете заказы в одном элементе управления представления сетки. Чтобы привязка данных master-detail работала должным образом, важно привязать свойство Orders в классе Customers, а не к отдельному узлу Orders. Перетащите свойство Orders класса Customers в нижнюю половину формы, чтобы конструктор положил его в строку 2:

Drag Orders classes as grid

Visual Studio создал весь код привязки, который соединяет элементы управления пользовательского интерфейса с событиями в модели. Все, что нужно сделать, чтобы просмотреть некоторые данные, — написать код для заполнения модели. Сначала перейдите к Файлу MainWindow.xaml.cs и добавьте элемент данных в класс MainWindow для контекста данных. Этот объект, созданный для вас, действует как элемент управления, который отслеживает изменения и события в модели. Вы также добавите элементы данных CollectionViewSource для клиентов и заказов, а также связанную логику инициализации конструктора. Верхняя часть класса должна выглядеть следующим образом:

Добавьте директиву using system.Data.Entity для переноса метода расширения Load в область действия:

Теперь прокрутите страницу вниз и найдите Window_Loaded обработчик событий. Обратите внимание, что Visual Studio добавил объект CollectionViewSource. Это представляет объект NorthwindEntities, выбранный при создании модели. Вы добавили это уже, поэтому вам не нужно его здесь. Давайте заменим код Window_Loaded таким образом, чтобы метод выглядел следующим образом:

Нажмите клавишу F5. Вы увидите сведения о первом клиенте, который был получен в CollectionViewSource. Кроме того, их заказы должны отображаться в сетке данных. Форматирование не очень велико, поэтому давайте исправим это. Вы также можете создать способ просмотра других записей и выполнения базовых операций CRUD.

Настройка макета страницы и добавление сетки для новых клиентов и заказов

Расположение по умолчанию, созданное Visual Studio, не идеально подходит для вашего приложения, поэтому мы предоставим окончательный код XAML для копирования в код. Вам также нужны некоторые формы (которые фактически являются сетками), чтобы позволить пользователю добавить нового клиента или заказ. Чтобы добавить нового клиента и заказ, вам потребуется отдельный набор текстовых полей, которые не привязаны к CollectionViewSource данным. Вы будете управлять сеткой, которую пользователь видит в любой момент времени, задав свойство Visible в методах обработчика. Наконец, вы добавите кнопку «Удалить» в каждую строку в сетке «Заказы», чтобы пользователь мог удалить отдельный заказ.

Сначала добавьте эти стили в Windows.Resources элемент MainWindow.xaml:

Затем замените всю внешнюю сетку этой разметкой:

Добавление кнопок для навигации, добавления, обновления и удаления

В приложениях Windows Forms вы получаете объект BindingNavigator с кнопками для перехода по строкам в базе данных и выполнения базовых операций CRUD. WPF не предоставляет BindingNavigator, но его достаточно просто создать. Это можно сделать с помощью кнопок внутри горизонтального StackPanel и связать кнопки с командами, привязанными к методам в коде программной части.

Логика команд имеет четыре части: (1) команды, (2) привязки, (3) кнопки и (4) обработчики команд в коде программной части.

Добавление команд, привязок и кнопок в XAML

Сначала добавьте команды в файл MainWindow.xaml внутри Windows.Resources элемента:

CommandBinding сопоставляет RoutedUICommand событие с методом в коде программной части. Добавьте этот CommandBindings элемент после закрывающего тега Windows.Resources :

Теперь добавьте кнопки навигации StackPanel , добавления, удаления и обновления. Сначала добавьте этот стиль в: Windows.Resources

Во-вторых, вставьте этот код сразу после RowDefinitions внешнего Grid элемента в начало страницы XAML:

Добавление обработчиков команд в класс MainWindow

Код программной части является минимальным, за исключением методов добавления и удаления. Навигация выполняется путем вызова методов в свойстве View объекта CollectionViewSource. В этом DeleteOrderCommandHandler разделе показано, как выполнить каскадное удаление в порядке. Сначала необходимо удалить Order_Details, связанные с ним. Он UpdateCommandHandler добавляет нового клиента или заказ в коллекцию или просто обновляет существующий клиент или заказ с изменениями, сделанными пользователем в текстовых полях.

Добавьте эти методы обработчика в класс MainWindow в файле MainWindow.xaml.cs. Если в таблице CollectionViewSource для customers есть другое имя, необходимо изменить имя в каждом из этих методов:

Выполнение приложения

Чтобы начать отладку, нажмите клавишу F5. Вы должны увидеть данные клиента и заказа, заполненные в сетке, и кнопки навигации должны работать должным образом. Щелкните «Зафиксировать» , чтобы добавить нового клиента или заказ в модель после ввода данных. Нажмите кнопку «Отмена «, чтобы вернуться из новой формы заказа или нового клиента, не сохраняя данные. Вы можете вносить изменения в существующие клиенты и заказы непосредственно в текстовых полях, а эти изменения автоматически записываются в модель.

How to connect to MYSQL with WPF?

But there’s a very simple way of doing this in WinForms using the MySQL Connector thing from the mysql site. Can I use this with WPF aswell? Or is it just a WinForms thing? I’ve tried it, but doesn’t seem to work.

How can I connect to MYSQL with WPF?

2 Answers 2

WPF and MySQL have absolutely nothing to do with each other, and can be used together as much as you like. How you implement this is a choice, but going for a separate Data-layer is always a good option. If you create an interface for the data operations, for example

you can implement this interface how you want to, and use the MySQL connector or Entity Framework or even NHibernate to access the data. This way WPF doesn’t know what database is used, which it really doesn’t need to know in the first place.

You could use Entity Framework for this. There’s more information on how to use Entity Framework with MySQL in this SO question.

Linked
Related
Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.13.42356

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Основы работы с MySQL Workbench: подключение удалённого сервера и синхронизация с ним

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

Синхронизация модели и базы данных

Экспорт модели MySQL Workbench в SQL дамп

Самый быстрый путь для того, чтобы схема данных из MySQL Workbench попала на сервер — создание SQL дампа mwb модели. Для этого не потребуется создавать удалённое подключение в программе, однако этот способ хорош лишь в случае, если требуется однократная заливка структуры и базовых данных на сервер. Дальнейшая поддержка, обновление и синхронизация модели данных в этом случае будет весьма проблематична (хотя, в MySQL Workbench есть функционал и для этого, но он не входит в планы моего обзора). Итак, открываем нашу модель и выбираем «File → Export → Forward Engineer SQL CREATE Script. » (Ctrl + Shift + G):

Экспорт mwb в SQL - настройки

Если требуется записать дамп в файл, указываем путь до файла в поле «Output SQL Script File» (если оставить поле пустым, SQL скрипт можно будет скопировать на последнем шаге в буфер обмена). Мы видим окно настроек экспорта. Настройки стандартные, чтобы понять их суть, достаточно перевести их названия. Поясню только то, что галочка «Generate INSERT Statements for Tables» включает в дамп базовые данные, располагающиеся во вкладке «Inserts» интерфейса редактирования таблиц модели. После нажатия «Next» мы видим список того, что вообще можно экспортировать. Для экспорта таблиц выбираем «Export MySQL Table Objects», а чтобы экспортировать их выборочно, нажимаем «Show Filter» и выбираем нужные нам таблицы:

Экспорт mwb в SQL - выбор таблиц

Нажав «Next» мы увидим в окне готовый SQL скрипт, откуда сможем скопировать его в буфер обмена или же записать в какой-либо файл.

Экспорт mwb в SQL - сохранение дампа

Путей, которыми структура и данные попадут к вам на сервер масса, а самый распространённый из них — импорт через PHPMyAdmin.

Создание удалённого подключения к серверу 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»:

TCP/IP подключение к удалённому серверу

  • В поле «Host» вводим адрес сервера MySQL или адрес сайта (если MySQL сервер находится на самом веб сервере)
  • «Port» по умолчанию чаще всего 3306
  • Вводим имя пользователя MySQL («Username»), пароль («Password») и имя базы данных («Default Schema»)
  • После создания подключения нажимаем «Test Connection» и ждём сообщения «Connection parameters are correct.»

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

Через SSH туннель (TCP/IP over SSH)

В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP over SSH»:

TCP/IP over SSH подключение к удалённому серверу

  • Тут нам придётся ввести адрес веб сервера («SSH Hostname») (порт, если нужно, указывается через двоеточие, например, «linuxsc.pro:18752»)
  • Вводим логин и пароль SSH пользователя («SSH Username» и «SSH Password»)
  • Адрес MySQL сервера нужно вводить относительно веб сервера, то есть в случае, если MySQL и веб сервер находятся на одной машине, в поле «MySQL Hostname» оставляем «127.0.0.1»
  • «MySQL Server Port» по умолчанию 3306
  • В поля «Username» и «Password» вводим логин и пароль пользователя MySQL
  • Проверяем подключение при помощи кнопки «Test Connection»

Список доступных подключений можно просмотреть в диалоговом окне, выбрав «Database → Manage Connections. «

Синхронизация структуры данных

Для синхронизации структуры базы данных и локальной модели в MySQL Workbench существует специальный инструмент. Открыв нужную модель, выбираем «Database → Synchronize Model. » (Ctrl + Shift + G), после чего мы можем выбрать одно из сохранённых удалённых подключений и отредактировать его параметры. Жмём «Next» для подключения к базе данных:

Синхронизация - подключение к серверу

После подключения к серверу и нажатия «Next» мы увидим список моделей (в левой колонке) и баз данных (в правой колонке), доступных для синхронизации:

Синхронизация - выбор модели и базы данных

Выбрав галочкой нужную базу и схему, нажимаем «Next», запуская процедуру сравнения структур удалённой базы данных и нашей модели:

Синхронизация - сравнение модели и базы данных

После завершения процедуры мы можем увидеть список различий между нашей схемой данных и удалённой базой:

Синхронизация - настройки объединения

Тут мы можем настроить объединение таблиц: протолкнуть наши изменения на сервер («Update Source»), втянуть в локальную модель конфигурацию с сервера («Update Model») или игнорировать отличия («Ignore»). При чём, доступен как вариант настройки для всей базы, так и отдельно для каждой таблицы. При выделении одной из таблиц и выборе способа объединения мы можем видеть SQL запросы, которые выполнятся в процессе синхронизации, а нажав «Next» — увидим полный стек этих запросов:

Синхронизация - SQL запросы для объединения

Просмотрев 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.

Для просмотра, создания или редактирования записей нажимаем на нужную таблицу правой кнопкой и выбираем «Select Rows — Limit 1000» или выполняем нужный для выборки SQL запрос:

Работа со строками в таблицах БД

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

Управление сервером, создание и восстановление бэкапов

Создать backup базы данных очень просто, выбрав Server → Data Export при наличии активного подключения к удалённому серверу:

Создание бэкапа базы данных

Крутизна, да? 🙂 Можно бэкапить как всю базу, так и по частям. Можно хранить все бэкапы удобно и упорядоченно. Блин, можно всё что хочешь!

Восстановить backup тоже проще простого. Выбираем Server → Data Import, находим нужный файл и не долго думая нажимаем «Start Import»:

Восстановление бэкапа базы данных

В общем, да, в MySQL Workbench есть целая куча всего для управления сервером баз данных: управление пользователями и их правами, управление настройками сервера (если у вашего пользователя есть соответствующий доступ). К примеру, выбрав Server → Server Status, мы можем посмотреть такую вот классную статистику нагрузки на MySQL:

Статистика сервера, нагрузка

Такую красивую статистику просто скушать хочется! Приятно смотреть на такую эффективную эффективность моих ключей и индексов 🙂 А вот над буфером InnoDB нужно подумать.

Вместо заключения (о некоторых подводных камнях)

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

Программа периодически подвисает или «падает»

Суть проблемы: некоторая неустойчивость MySQL Workbench прослеживалась у меня на разных компах с разными ОС. Видимо, разработчики о ней тоже знают — в процессе работы изменения записываются в *.bak файл, что не раз выручало меня после «падения».

Решение: почаще сохраняться 😉 Так же практика показывает, что лучше не тыкать беспорядочно на всё подряд, а перед следующим действием ожидать завершения предыдущего.

Ошибка «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)» при синхронизации

Суть проблемы: обычно эта ошибка касается неправильной настройки внешних ключей (вкладка «Foreign Keys» в настройках таблиц). У меня она возникала в том случае, если я делал ключом поле с меткой NOT NULL, а в поведении внешнего ключа указывал SET NULL — это абсурд, ведь InnoDB не сможет установить значение NULL в поле, где такое значение запрещено.

Решение: внимательно следим за настройкой поведения внешних ключей. Если необходимо поведение SET NULL, у поля-ключа в дочерней таблице не должен стоять флаг NOT NULL.

Ошибка «Field . can not be null» при выгрузке стартовых данных

Суть проблемы: независимо от настроек таблицы, все поля в «Inserts» имеют по умолчанию значение NULL, даже если такое значение не разрешено для данного поля. Соответственно, при выгрузке на сервер может возникнуть ошибка.

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

Ошибка Сan’t connect to MySQL server on . (10061) при подключении

Суть проблемы: говорят, что может быть несколько причин. Я встечал такую ошибку в случае, если в файле my.cnf была установлена настройка «skip-networking» — по сути она не даёт MySQL работать с сетью.

Решение: закомментировать данную опцию:

Конец

Итак, мой обзор программы MySQL Workbench в двух частях (кстати, первую часть можно найти тут) подходит к концу. Буду рад, если читатель почерпнет для себя в нём что-то полезное или интересное 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *