Mysql портирование кода из msql в mysql


Содержание

Миграция баз данных MySQL в SQL Server — база данных Azure SQL (MySQLToSql) Migrating MySQL Databases to SQL Server — Azure SQL DB (MySQLToSql)

SQL Server Migration Assistant (SSMA) для MySQL — это комплексное среда, которая поможет вам быстро перенести базы данных MySQL в SQL Server или SQL Azure. SQL Server Migration Assistant (SSMA) for MySQL is a comprehensive environment that helps you quickly migrate MySQL databases to SQL Server or SQL Azure. С помощью SSMA для MySQL, можно просмотреть объекты базы данных и данных, оценить баз данных для миграции, миграция объектов базы данных в SQL Server или SQL Azure и затем перенести данные в SQL Server или SQL Azure. By using SSMA for MySQL, you can review database objects and data, assess databases for migration, migrate database objects to SQL Server or SQL Azure, and then migrate data to SQL Server or SQL Azure.

Для успешного переноса объектов и данных из базы данных MySQL в SQL Server или SQL Azure, воспользуйтесь следующей процедурой: To successfully migrate objects and data from MySQL databases to SQL Server or SQL Azure, use the following process:

После создания проекта можно задать преобразование проекта, миграции и параметры сопоставления типов. After you create the project, you can set project conversion, migration, and type mapping options. Дополнительные сведения о параметрах проекта см. в разделе Настройка параметров проекта (MySQLToSQL). For more information about project settings, see Setting Project Options (MySQLToSQL). Сведения о том, как настроить сопоставления типов данных, см. в разделе сопоставление MySQL и типы данных SQL Server (MySQLToSQL) For information about how to customize data type mappings, see Mapping MySQL and SQL Server Data Types (MySQLToSQL)

При необходимости оценка баз данных MySQL для преобразования (MySQLToSQL) обращаться к таким объектам базы данных для преобразования и оценить время преобразования. Optionally, Assessing MySQL Databases for Conversion (MySQLToSQL) to assess database objects for conversion and estimate the conversion time.

Это можно сделать одним из следующих способов: You can do this in one of the following ways:

Сохраните сценарий и запустите его на SQL Server или SQL Azure. Save a script and run it on SQL Server or SQL Azure.

Синхронизируйте объекты базы данных. Synchronize the database objects.

При необходимости обновите приложений баз данных. If necessary, update database applications.

Нельзя перенести схемы Information_schema и MySQL. You cannot migrate Information_schema and MySQL schemas.

Команды MySQL

Консоль MySQL позволяет вводить как инструкции SQL, так и служебные команды MySQL, предназначеные для администрирования и использования таблиц в базах данных MySQL. К основным командам относятся SHOW, USE и CREATE.

Рассмотрим каждую из них отдельно.

Эта команда предназначена для просмотра доступных баз данных и таблиц в конкретных базах данных. Для просмотра списка баз данных необходимо ввести такую команду:

Если, например, существуют две базы данных — mysql и test (эти две базы как правило создаются автоматически при инсталляции сервера), то MySQL ответит примерно так:

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

Эта команда выдаст список таблиц в текущей базе данных:

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

CREATE

Эта команда позволяет создавать новые базы данных. Как было сказано выше, по умолчанию сервер создает две базы данных — mysql и test. Для удобства стоит создавать новую базу данных для каждой отдельной задачи, потому что легче работать с набором таблиц, которые связаны между собой (даже если эта связь только смысловая). Создадим новую базу данных при помощи этой команды:

После этой операции будет создана новая база данных не содержащая никаких таблиц, а команда SHOW DATABASES выдаст следующее:

Как уже было сказано выше, в один и тот же момент только одна база данных может быть активна. Команда USE служит для выбора этой активной базы. Для перехода к некоторой базе данных необходимо выполнить следующую операцию:

Стоит отметить, что при создании новой базы данных (см. выше), новая база не становится активной автоматически — для ее использования необходимо сделать это самостоятельно.

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

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

Эта команда подразумевает, что в активной базе данных существует таблица mysql, из которой она просто извлекает все данные и выводит их на экран.

Замечание: На SQL-команды распространяется одно ограничение, которое не имеет отношения к командам MySQL — инструкции SQL обязательно должны заканчиваться точкой с запятой. Это позволяет вводит многострочные запросы к бызе данных, что не требуется для MySQL-команд, которые как правило лаконичные и короткие.

Как вы уже наверное поняли, команда SELECT служит для просмотра данных таблиц. Ее упрощенный синтаксис таков:

В списке поля может быть как один элемент, так и несколько; кроме того возможно указание символа «*» (), который говорит, что следует показать все поля таблицы.

Часть WHERE … является необязательной и позволяет выбрать из таблицы строки, удовлетворяющие определенному(ым) условию(ям). Раздел ORDER BY … служит для сортировки полученных данных по определенным полям.

Вот пример более сложного запроса, демонстрирующий сказанное выше. Допустим таблица staff содержит информацию о сотрудниках некоторой организации. Этот запрос находит записи о тех из них, кто работает больше двух лет и кого не зовут Иваном.

Рассмотрим этот запрос

Первая строка велит MySQL показать содержимое только полей name, project и works_since. Вторая строка указывает на таблицу, в которой следует искать эти данные. Оставшаяся часть запроса указывает критерии выбора — имя не должно быть ‘Иван’, а дата быть более ранней, чем 26-е апреля 1998-го года. Вот пример вывода после такой операции:

Для показа данных одного поля может использоваться такой запрос:

Как видите, этот запрос просто выбирает значения из нужного поля из каждой строки и выводит их, заодно сортируя по (единственному) полю project, поэтому в результатах встречаются повторения. Для устранения их используется инструкция DISTINCT:

SQL позволяет производить некоторые вычисления и получать некоторую описательную информацию при помощи агрегатных функций. Среди этих функций — COUNT, SUM, MAX, MIN и AVG:

COUNT — вычисляет количество найденых строк;
SUM — находит сумму значений в найденых строках;
MAX — находит найбольшее среди найденых значений;
MIN — находит наименьшее среди найденых значений;
AVG — находит среднее значение от найденых .

Используются эти функции как элементы списка таблиц в запросе с аргументом — названием поля. Вот несколько примеров.

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

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

Для сравнения значения с регулярным выражением используется оператор LIKE, а для конструирования простеших выражений — символы ‘_’ (произвольный символ) и ‘%’ (произвольное количество произвольных символов). Пример. Этот запрос находит все имена, которые начинаются с ‘Jo’:

MySQL также позволяет производить более развитое сравнение с шаблоном при помощи оператора REGEXP и средств построения шаблона теми же методами, что используются в Perl (см. Регулярные выражения в Perl).

Этот запрос выведет все строки, в которых название проекта содержит букву ‘b’ вне зависимости от регистра.

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

Для того, чтобы точно указывать, о поле какой таблицы идет речь, используется запись типа staff.project, где перед точкой стоит название таблицы, а после нее — название поля. Второй вариант — назначения псевдонимов (алиасов) таблицам для большего удобства. Для этого в списке таблиц название каждой таблицы указывается вместе с псевдонимом — например stuff x, projects y.

В этом примере объединяются таблицы staff и projects, причем выводятся имя сотрудника, проект над которым он работает и описание этого проекта.

Объединив все это в один запрос получим следующее:

Этот запрос показывает названия проектов, описания их и количество сотрудников, которые заняты в них для тех проектов, которые не являются секретными и описания которых начинаются с ‘Wo’, следом за которыми идут еще два символа, после чего — ‘d’ и дальше что угодно, и сортирует единственное значение по полю project_name .

Редактирование данных

Редактирование данных — это добавление, удаление и изменение их. Для выполнения этих операций используются команды INSERT, DELETE и UPDATE соответственно.

Команда INSERT служит для вставки строк в таблицы. Вот как может выглядеть такой запрос:

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

Удаление данных производится командой DELETE. Для этого нужно указать таблицу и (необязательно) условия, которым должны удовлетворять строки, которые следует удалить. Если условия опущены, эта команда, как и SELECT, проделает эту операцию надо всеми строками — то есть очистит таблицу.

Изменение данных производится при помощи команды UPDATE. Необходимо указать, значения каких полей следует изменить, а также (опять же необязательно) условия, которым должны удовлетворять строки, которые следует обновить.

Этот запрос устанавливает дату принятия на работу, зарплату и название проекта всем Джекам, которые находятся в базе данных.

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

Примечание для тех, кто знаком со стандартом ANSI SQL 92: на данный момент MySQL поддерживает укороченную версию этого стандарта, в которую не входит выполнения подзапросов а также некоторые другие функции.

Импорт базы данных MySQL в консоли

Доброго времени суток, коллеги ��

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

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

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

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

Но, перед тем, как мы приступим к обзору способов и инструментов, пару слов о том, что такое импорт базы данных MySQL, каким он бывает и как его лучше всего делать?

Импорт базы данных MySQL: что и зачем?

Импорт базы данных MySQL — это операция, при которой происходит наполнение базы информацией. При этом источником данных является файл дампа — слепок другой базы, автоматически созданный при операции экспорта, или специально подготовленный SQL скрипт.

Импорт, как и экспорт БД MySQL, бывает двух видов информации, хранящейся в базе:

  1. структуры базы, её таблиц и хранимых в них данных (в простонародье именуемых дампом БД);
  2. просто данных, хранящихся в таблице либо собранных с помощью SELECT запросов.

В данной статье будут рассмотрены оба варианта.

Для восстановления из дампа MySQL базы данных с её структурой и всей хранимой информацией, как уже было сказано, нужен файл дампа БД, который представляет из себя текстовый файл с любым расширением (предварительно может быть запакован в архив для уменьшения размера), содержащий SQL команды для создания самой базы и таблиц, а также наполнения их информацией.

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

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

Для этих целей подойдёт и обычный txt файл, данные в котором будут разделены, либо файлы, создаваемые в специальных табличных редакторах (Microsoft Office Excel, OpenOffice и т.д.), имеющих отличное расширение: xls, csv, odt и др.

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


Добавление данных в MySQL: инструменты

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

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

  1. Консоль сервера и командная строка MySQL;
  2. Скрипты, написанные на языках программирования, позволяющие делать запись данных в MySQL с помощью языковых средств;
  3. Готовые программы, предоставляющие визуальный интерфейс для работы с БД (тот же самый phpMyAdmin, MySQL WorkBench, MySQL Manager и др.).

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

Илон Маск рекомендует:  Буфер обмена

Так или иначе, во главе всего лежит консоль, а остальные инструменты, по сути, являются её эмуляторами.

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

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

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

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

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

Надеюсь, что я замотивировал вас делать импорт базы данных MySQL через консоль (причём, как её структуры, так и отдельно данных).

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

Как восстановить MySQL базу из дампа через консоль?

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

  1. с помощью команды в командной строке MySQL;
  2. в самой консоли сервера.

Начнём по порядку.

Итак, чтобы импортировать дамп базы данных MySQL в существующее хранилище через командную строку MySQL, нам сначала нужно её запустить и выбрать нужную базу данных, в которую мы будем заливать наш дамп.

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

После того, как вы сделаете указанное, вводим в MySQL Shell следующую команду:

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

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

Вот и всё. Главное — дождаться окончания импорта, если файл очень большой. Об окончании заливки дампа можно судить по тому, когда консоль сервера будет снова доступна.

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

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

В Linux это можно сделать следующим образом:

В Windows стандартной утилиты для распаковки архива в консоли нет, поэтому её нужно будет установить дополнительно.

Как видите, импорт дампа MySQL через консоль – операция весьма простая, которая выполняется одной командой. Так что для выполнения данной процедуры не обязательно быть разработчиком.

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

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

Загрузка данных в MySQL базу из файла в консоли

О восстановлении БД MySQL из дампа в консоли мы поговорили. Теперь самое время разобраться с тем, как аналогичным образом можно импортировать данные из файлов, в том числе из xls и csv в MySQL базу.

Для данной задачи у нас снова есть те же два инструмента, что и в предыдущем случае: командная строка MySQL и консоль сервера.

Снова начнём обзор по порядку.

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

А далее прописываем в консоли следующую SQL команду:

Не забудьте, что, если сервер MySQL был запущен с опцией —secure-file-priv (что часто бывает при использовании MySQL дистрибутивов, входящих в WAMP/MAMP сборки), то имя файла нужно указывать с учётом системной переменной secure_file_priv.

О том, как узнать её значение и изменить его, подробно написано в статье об экспорте базы данных MySQL.

Для того, чтобы сделать импорт базы данных MySQL в консоли сервера, не заходя в MySQL Shell, нам пригодится утилита mysqlimport, входящая в состав дистрибутива MySQL, и следующий её вызов:

Данная утилита является аналогом SQL команды LOAD DATA INFILE, только для командной строки. Но, спрашивается, почему тогда среди параметров её вызова не указана таблица, в которую будут загружаться данные из файла?

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

Т.е. если вы захотите сделать импорт из Excel таблицы в MySQL таблицу users, то ваш файл должен называться users.xls.

Расширение у импортируемого файла, как уже говорилось, может быть любым.

С помощью mysqlimport также можно загружать сразу несколько файлов xls или csv в MySQL. Чтобы данные попали по назначению, названия файлов и таблиц БД, как и в предыдущем примере, также должны совпадать.

Если вдруг в импортируемом файле столбцы идут не в той же последовательности, что и колонки таблицы БД, то для уточнения их порядка нужно использовать опцию —columns в следующем виде:

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

Если захотите ознакомиться с ними самостоятельно, то полный их список доступен здесь — https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Особенности загрузки данных в MySQL базу из дампа

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

У самих команд импорта баз данных MySQL таких опций, к сожалению, нет.

Единственное, для увеличения скорости при загрузке большого дампа БД можете использовать следующую фишку.

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

2. Прописываем в начале файла следующие строки:

Обратите внимание! Может быть они уже есть или закомментированы (многие программы, с помощью которых делают дампы, могут добавлять их автоматически)

3. В конце файла прописываем обратные действия:

Кстати, данные команды помогут не только ускорить процесс импорта, но и сделать его возможным.

Дело в том, что, если вы хоть раз заглядывали в файл дампа для импорта БД MySQL, то могли заметить, что операция задания структуры загружаемых таблиц выглядит так:

Т.е. выполняется поиск в БД таблицы с таким же именем, как и у импортируемой, и если таковая найдена, то она удаляется и создаётся заново.

И если вдруг существующая таблица будет связана внешними ключами с другими, то вся загрузка провалится.

Поэтому отключение проверки существования внешних ключей и прочих – это ещё и отличная гарантия успешного выполнения процесса импорта базы данных MySQL.

Особенности импорта csv в MySQL БД и других файлов

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

Причём, в отличие от предыдущей ситуации, в данном случае прописать директивы в файл не получится, т.к. SQL команды в нём не будут восприниматься и выполняться.

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

Однако, там я не упомянул, что системная переменная MySQL FOREIGN_KEY_CHECKS имеет два значение: глобальное и сессионное (для текущей сессии).

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

Сессионное значение системной переменной MySQL устанавливается только на время сеанса работы пользователя с сервером MySQL. Сеанс или сессия начинается при подключении клиента к серверу, при котором ему присваивается уникальный connection id, и заканчивается при отключении от сервера, которое может произойти в любой момент (например, по таймауту).

Почему я об этом решил вспомнить?

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

В консоли всё так же выдавалось сообщение об ошибке, вызываемой наличием в таблице внешних ключей.

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

В приведённых командах переменная явно помечается как сессионная.

А, поскольку, я выполнял загрузку csv файла в MySQL таблицу через консоль сервера, без прямого подключения к серверу MySQL, то сеанс и не был создан, в рамках которого работало бы моё сессионное значение переменной.


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

Сделать это можно одним из перечисленных способов:

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

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

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

До новых встреч! ��

P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.

Опыт разработки проектов различного уровня: лендинги, корпоративные сайты, Интернет-магазины, CRM, порталы. В том числе поддержка и разработка HighLoad проектов. Присылайте ваши заявки на email cccpblogcom@gmail.com.

И с друзьями не забудьте поделиться ��

Администрирование Mysql из командной строки

Небольшая ремарка насчет постоянного упоминания мной, FreeBSD. В процессе написания, я стараюсь вживую проверять команды, которые пишу, а поскольку Unix системы, расплодились нынче в большом количестве, наборы команд, программ и утилит а так-же опций команд, могут значительно различаться и то что работает во FreeBSD, может не работать в каком-нибудь дистрибутиве Linux. Поэтому мне кажется не будет лишним указать, в какой именно unix системе, это работает точно. На самом деле адаптировать все это под любую другую Unix систему не сложно, всегда можно найти аналог программы, или глянуть man руководство, что-бы уточнить использование опций.

Для начала, как восстановить пароль Mysql пользователя root

Консольный клиент mysql

Не путайте пользователя root, Mysql сервера, с системным пользователем root.

Далее в примерах, ключ \g ( go ), это указание Mysql выполнить команду, пока он не указан, клиент будет переходить на новую строку, ожидая дальнейшего ввода или ключа \g ( как альтернативу можно использовать символ ; – точка с запятой ). Еще один полезный вариант \G, это вертикальный вывод данных, очень удобно, если например в таблице много колонок и они не умещаются на ширину экрана. Полный список ключей можно посмотреть введя ключ \h ( help ).

Перенос БД с SQLite на MySQL на примере MediaWiki

Содержание

Рассматривая в этой статье перенос сайта на другую СУБД на примере MediaWiki, создаваемом для Википедии и распространяемом бесплатно, дадим также общие советы.

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

Итак, у нас имеется сайт под управлением MediaWiki использующий SQLite, который мы решили перенести на MySQL. Во избежании проблем крайне рекомендуется при переходе использовать ту же самую версию движка, так как при смене версий может быть изменена структура базы данных. Можно вообще использовать этот же набор файлов MediaWiki, лишь изменяя в конфигурационном файле LocalSettings.php переменные доступа к базе данных (они имеют общее начало: $wgDB. ). Используя ту же версию мы можем не заботиться о переносе структуры, всё что нам остаётся – это перенести содержимое таблиц. Самым простым решением было бы выгрузить содержимое SQLite в виде текстового файла с последовательностью SQL команд и затем выполнить эти команды на MySQL. Однако, существует

Разница между реализацией SQL языка в SQLite и MySQL

В нашей конкретной задаче не имеет значения в чём различается функционал SQLite и MySQL, для нас важно чем отличаются SQL команды в этих СУБД, так как в конечном счёте работа с любой СУБД сводится к выполнению последовательности этих команд в её среде. С их помощью создаются, изменяются и удаляются все объекты, а также записываются и считываются данные. Несмотря на существующие стандарты языка SQL, каждая СУБД вносит что-то своё в его реализацию. Рассматриваемые нами СУБД не соответствуют стандартам по-разному, поэтому при подготовке команд SQLite для MySQL нужно будет:

  • Удалить строки (Некоторые парсеры удаляют ещё строки «CREATE UNIQUE INDEX» и «COMMIT;», но это не обязательно, так как обе команды есть в MySQL.):
    • PRAGMA
    • BEGIN TRANSACTION;
    • sqlite_sequence
    • DELETE FROM sqlite_sequence
    • INSERT INTO sqlite_sequence
  • Заменить:
    • AUTOINCREMENT на AUTO_INCREMENT
    • Все значения логических полей с ‘t’ на ‘1’ и с ‘f’ на ‘0’
    • Символ » на ` – т.е. двойную кавычку заменить на апостроф (кроме как в текстовых полях, где эти символы могут использоваться как часть текста).

Всё это можно было бы доверить парсеру (тем более, что их для SQLite создано уже довольно много), преобразующему синтаксис по известным нам правилам, но последнее из перечисленных условий является самым проблемным. Оно делает невозможным корректное автоматическое преобразование синтаксиса, так как в текстах сайта вполне вероятно могут встретится оба упомянутых символа в непредсказуемых комбинациях. Кроме того, задача парсера осложняется ещё и тем, что в статьях переносимого сайта могут встречаться SQL выражения, которые, конечно, же надо обрабатывать, но объяснить это парсеру очень трудно. Такая ситуация вынуждает нас использовать более долгий

Алгоритм перехода сайта под управлением MediaWiki c SQLite на MySQL

Перед началом переноса сайта MediaWiki желательно прочитать общие рекомендации на официальном сайте.

Так как в движке MediaWiki реализован механизм резервного копирования БД в XML-файл, не зависящей от используемой базы данных, то переход значительно упрощается. Его использование решит нашу основную сложность: XML представление позволяет обойти проблемы с кавычками в текстовых полях и с использованием в них SQL команд. Однако в этот файл выгружается только содержимое вики страниц и история их изменений, он не включает в себя данные из других таблиц. Поэтому наш алгоритм будет состоять из трёх этапов, с тремя шагами в каждом. Первым этапом будет

Илон Маск рекомендует:  Фильтр Gradient

1. Подготовка нового сайта

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

1.1. Переключаем действующий сайт в режим только для чтения. Для этого достаточно в конфигурационном файле определить переменную $wgReadOnly , задав сообщение, которое будет появляться в случае, если кто-то захочет отредактировать статью. Например:

1.2. Дублируем файлы действующего сайта, кроме файла базы данных SQLite. Можно не копировать файлы и каталоги, а создать на них мягкие ссылки. Для автоматизации этого процесса можно взять скрипт create_wiki.sh , написанный bash для создания вики-фермы.

1.3. Запускаем инсталлятор MediaWiki через веб-интерфейс и проводим процедуру установки до конца. Это создаст необходимую структуры базы данных в MySQL.

Теперь можно начать

2. Перенос страниц сайта

2.1. Выгружаем из действующего сайта содержимое вики-страниц в XML-файл с помощью штатного скрипта резервного копирования DumpBackup.php .

2.2. Делаем импорт данных на новый сайт с помощью importDump.php (работает не быстро). Если вики очень большая, то можно использовать MWDumper – специально написанный инструмент на Java. Данные для подключения к базе данных как здесь так и в предыдущем шаге скрипты берут из конфигурационного файла LocalSettings.php , поэтому они должны запускаться из соответствующих каталогов старого и нового сайтов.

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

Теперь самое трудное позади, на очереди

3. Перенос оставшихся таблиц

Данные из остальных таблиц переносить уже гораздо проще, т. к. в них нет проблемного текста (с одной оговоркой, о которой скажем попозже). Будем брать SQL команды SQLite, конвертировать их в команды MySQL и запускать на последнем. Рассмотрим этот процесс на примере переноса таблицы user (пользователи вики). Вообще переноса одной только этой таблицы уже будет достаточно, чтобы проверить работоспособность нового сайта. Далее можно будет перенести таблицы user_properties (пользовательские настройки), category (категории статей), interwiki (короткие ссылки на другие вики сайты) и т.д. на усмотрение администратора. Все таблицы переносить смысла нет. С помощью phpMyAdmin можно легко просмотреть какие таблицы на действующем сайте у нас заняты и чем. Итак,

3.1. Получаем таблицы SQLite в виде SQL команд. Для этого можно использовать, например, утилиту с графическим интерфейсом sqliteman, взяв таблицы по отдельности – так будет проще всего. Также можно выполнить команду dump в командном интерпретаторе sqlite для получения всей базы данных:

А из полученного дампа выбрать команды для интересующих нас таблиц и перенести их в один файл (скажем sqlite_tables.sql) для последующего преобразования.

3.2. Преобразуем SQL команды SQLite в MySQL с помощью парсера, например, parse_sqlite_sql.py :

Этот питоновский парсер на выходе создаёт два файла, группируя отдельно sql команды для данных и для структуры БД. Нас интересуют только данные (о совпадении структур мы уже позаботились). После преобразования команды имеют вид:

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

3.3. Выполняем команды в MySQL. Можно небольшими порциями, чтобы отслеживать результат или всё сразу, в веб интерфейсе phpMyAdmin или в консоли:

где UserName и DBName лучше указать те же, что и в LocalSettings.php нового сайта.

Остальные таблицы переносятся по этому же алгоритму. Если при переносе некоторых таблиц возникли проблемы, то обратите внимание какие именно это таблицы: возможно данные в них и не нужны. Некоторые таблицы можно восстановить с помощью скриптов сопровождения, находящихся в каталоге maintenance . Например, recentchanges восстанавливается скриптом rebuildrecentchanges.php .

После окончания переноса не забываем проверить базовый функционал: регистрация пользователей, ограничение прав на редактирование (если было), загрузка файлов и общий вид страниц. Также можно просмотреть спец страницы: Версия MediaWiki (Служебная:Version), Статистика (Служебная:Statistics), Список участников (Служебная:ListUsers) и др. Если в вики использовались прямые URL ссылки на локальные ресурсы, а новый сайт располагается в другой папке, то это нужно учесть и либо исправить URL, либо перенести все такие файлы в прежнее место.

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

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

Сайты не MediaWiki

Если перед вами стоит схожая задача, но для другого движка, то суть решения и сложности с которыми столкнетесь остаются теми же. Поэтому предложенные здесь решения во многом вам помогут. Пожалуй, единственное отличие и основная трудность будет оставаться в переносе текста статей. Однако, скорее всего, у вашего движка также есть способы осуществлять перенос содержимого через промежуточные структуры путём создания и загрузки дампа базы данных. Первым делом нужно проверить такую возможность. Если этого нет, то можно написать небольшую программу с подключением к обоим СУБД. Так как SQLite и MySQL очень распространены, то думаю не будет ошибкой сказать, что во всех широко используемых языках программирования существуют библиотеки для работы с ними. По крайней мере для PHP, С, С#, Perl, Python, Java это так.

В случае с MediaWiki, как мы увидели, переход с СУБД SQLite на MySQL не такой уж сложный и долгий.

Как импортировать и экспортировать базы данных в MySQL или MariaDB

Введение

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

Кстати, дамп – это от английского dump, что буквально переводится как «сбрасывать», «сваливать» и может означать результат этого действия – куча. Дамп в компьютерной терминологии означает данные/база данных целиком, которую «сбросили», например, на диск.

Работа с базами данных MySQL и MariaDB проста. Эта инструкция покажет вам, как экспортировать базы данных, а также как импортировать их из файла дампа в MySQL и MariaDB.

Необходимые условия

Для импорта и/или экспорта базы данных MySQL или MariaDB вам понадобится:

  • Доступ к серверу Linux, на котором запущена MySQL или MariaDB
  • Access to the Linux server running MySQL or MariaDB
  • Имя базы данных и пользовательские учётные данные (логин и пароль) для неё

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

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

Экспортируйте вашу базу данных используя следующую команду

  • username – это имя пользователя, с которым вы можете войти в базу данных
  • database_name – это имя базы данных для экспорта
  • data-dump.sql – это файл в текущей директории, в который будет сохранён вывод


Программа не выводит какие-либо данные в консоль, но вы можете изучить содержимое файла filename.sql, чтобы проверить, является ли этот файл действительно дампом SQL используя:

Начало файла должно быть схожим с таким, где упоминается, что это дамп MySQL:

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

Импорт базы данных

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

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

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

О создание будет выведено подтверждение.

Теперь выйдете из оболочки MySQL нажав CTRL+D. В обычной командной строке вы можете импортировать файл следующей командой:

  • username – это имя пользователя, с которым вы можете войти в базу данных
  • newdatabase – имя только что созданной базы данных
  • data-dump.sql – файл дампа с данными для импорта, размещённый в текущей директории

Успешное выполнение команды не выведет никаких сообщений. Если во время этого процесса произойдут ошибки, mysql выведет их в терминале. Вы можете проверить, что база данных была импортирована снова войдя в оболочку MySQL и анализом данных. Это может быть сделано выбором новой базы данных командой

и затем использованием;

или похожей командой для просмотра данных.

Как сделать резервную копию нескольких баз данных MySQL?

Если вы хотите сделать резервную копию нескольких баз данных, запустите следующую команду. Следующий пример сделает резервную копию структуры и данных баз данных rsyslog, syslog в один файл под названием rsyslog_syslog.sql.

Как сделать резервную копию всех баз данных?

Если вы хотите сделать резервную копию всех баз данных, тогда используйте следующую команду с опцией —all-database. Следующая команда сделает резервную копию всех баз данных, их структуры и информации, в файл под названием all-databases.sql.

Как сделать резервную копию только структуры базы данных MySQL?

Если вы хотите сделать резервную копию структуры базы данных без информации, тогда используйте в команде опцию —no-data. Следующая команда экспортирует структуру базы данных rsyslog в файл rsyslog_structure.sql.

Как сделать резервную копию только информации из базы данных MySQL?

Для создания бэкапа только информации из базы данных без структуры, используйте с командой опцию —no-create-info. Эта команда возьмёт данные из базы данных rsyslog и скопирует их в файл rsyslog_data.sql.

Как сделать резервную копию одной таблицы из базы данных?

Следующей командой вы можете сделать резервную копию одной таблицы или определённых таблиц из вашей базы данных. Например, следующая команда только сделает бэкап таблицы wp_posts из базы данных wordpress.

Как сделать бэкап нескольких таблиц?

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

Как сделать резервную копию удалённой базы данных MySQL?

Следующая команда сделает на локальный сервер резервную копию с удалённого сервера 185.117.153.79 базы данных gallery.

Похожим образом вы можете восстановить отдельные таблицы, структуру и информацию базы данных.

Заключение

Теперь вы знаете, как создавать дампы баз данных MySQL, а также как снова их импортировать. У mysqldump имеется множество дополнительных настроек, которые могут использоваться для изменения, как дамп должен быть создан, дополнительно о mysqldump вы можете узнать из справки программы или из её документации.

Импорт и экспорт баз данных MySQL и MariaDB

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

Дампы MySQL и MariaDB очень просты в работе. Это руководство научит вас экспортировать и импортировать базы данных с помощью дампа MySQL или MariaDB.

Требования

  • Сервер Linux.
  • Предварительно установленная система управления базами данных MySQL или MariaDB.
  • База данных и пользователь СУБД.

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

Консольная утилита mysqldump позволяет экспортировать данные в текстовый файл SQL, который можно легко переместить. Для этого вам понадобится имя БД, а также учётные данные пользователя, у которого есть как минимум право на чтение БД.

Чтобы экспортировать БД, используйте такую команду:

mysqldump -u username -p database_name > data-dump.sql

  • username – имя пользователя БД;
  • database_name – имя БД, которую нужно экспортировать;
  • data-dump.sql – файл в текущем каталоге, в который будут экспортированы данные.

Вывод этой команды не отображается на экране. Чтобы убедиться в том, что данные были импортированы успешно, проверьте содержимое дампа:

head -n 5 data-dump.sql

Файл дампа MySQL должен начинаться примерно так:

— MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64)

— Host: localhost Database: database_name
— ——————————————————
— Server version 5.7.16-0ubuntu0.16.04.1

Если во время экспорта данных произошла ошибка, утилита mysqldump сообщит вам о ней.

Импорт данных

Чтобы импортировать дамп, нужно создать новую БД MySQL или MariaDB, в которую будут перемещены данные из дампа.

Войдите как root или другой пользователь с расширенными привилегиями.

Эта команда откроет командную оболочку MySQL. Создайте новую БД, например, new_database.

CREATE DATABASE new_database;

На экране появится вывод, подтверждающий, что БД была создана:

Query OK, 1 row affected (0.00 sec)

Закройте оболочку MySQL (CTRL+D). С помощью обычной командной строки импортируйте дамп:

mysql -u username -p new_database

  • username – имя пользователя, у которого есть доступ к БД.
  • newdatabase – имя новой БД.
  • data-dump.sql – имя дампа, который нужно импортировать.

В случае успешного выполнения команды вывод не отображается на экране. Если во время выполнения возникла какая-либо ошибка, mysql выведет их в терминал. Чтобы убедиться, что данные импортированы успешно, войдите в оболочку MySQL и проверьте БД. Для этого можно использовать:

USE new_database;
SHOW TABLES;

Заключение

Теперь вы умеете перемещать данные MySQL и MariaDB с помощью дампа. Утилита mysqldump имеет множество дополнительных параметров, при помощи которых можно настраивать дампы; подробнее об этом – в официальной документации mysqldump.

SCBlog

@ блокнот

Импорт / Экспорт базы mysql > консоль

Импорт базы данных

В принципе можно воспользоваться командой :

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

Самым лучшим выходом из ситуации будет ипморт напрямую через cli MySQL :

Заходим в MySQL:

(вместо Login и DB_name вводим данные пользователя БД и хост, например localhost)


Выбираем базу данных:

(вместо db_name вводим название БД)

Делаем импорт файла в выбранную бд:

(вместо db_name.sql вводим название файла дампа БД или путь до файла, если вы находитесь не в той папке, где лежит файл)

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

Делаем экспорт посредством удобного mysqldump :

Как импортировать и экспортировать базы данных в MySQL и MariaDB

Введение

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

Для того, чтобы выполнить все дальнейшие действия, у вас должны быть:

а) доступ к серверу на базе Linux, на котором работает MySQL/MariaDB;
б) название базы данных и данные доступа к ней.

Используем консоль

Экспорт

Для того, чтобы произвести экспорт, мы будем использовать утилиту mysqldump. При помощи нее осуществляется работа с текстовыми файлами базы данных. Итак, вы должны знать название базы данных, а также иметь доступ (логин и пароль) к аккаунту, который имеет, по крайней мере, доступ read only (только для чтения).

Для экспорта базы данных введите вот такую команду:

в которой нужно ввести имя пользователя с необходимым доступом, название нужной вам базы данных, а также data-dump.sql – файл в текущей директории, куда будут сохранены данные.

Илон Маск рекомендует:  Как настроить табуляцию в компоненте tmemo

После ввода этой команды вы не увидите никакого вывода на экране, однако вы можете проверить содержимое файла data-dump.sql для того, чтобы убедиться, что теперь он является резервной копией вашей базы данных.

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

Если во время процесса экспорта будут какие-нибудь ошибки, утилита mysqldump выведет на экран сообщение о них.

Импорт

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

Сначала подключитесь к базе данных в качестве root-пользователя (либо другого пользователя, который сможет создать новую базу данных):

После того, как вы подключились к консоли MySQL, создайте новую базу данных (в данном случае new_database):

После этого на экране появился следующий вывод:

Теперь для выхода из консоли MySQL нажмите CTRL+D. Далее переходите к самому импорту. Сделать это можно, введя вот такую команду:

Команда очень похожа на команду экспорта, вам нужно ввести имя пользователя, название новой базы данных, куда вы будете импортировать данные (в качестве примера new_database), и название самого файла, который вы собираетесь импортировать (data-dump.sql).

Если команда выполнена корректно, то никакого вывода на экране вы не увидите; на экране могут отобразиться только сообщения о каких-то ошибках. Как и в случае с экспортом, проверить, точно ли все прошло успешно, вы можете путем подключения к MySQL и просмотра данных. Сделать это можно, к примеру, используя команды USE и SHOW. Команда use определяет, какая база данных будет использоваться в дальнейших запросах. Введите:

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

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

Допустим, нам нужно посмотреть, список таблиц в базе. Для этого вводим:

Хотите увидеть список столбцов в какой-то определенной таблице? Используйте команду SHOW COLUMNS FROM и название нужно вам таблицы:

Статистику по работе сервера можно получить в ответ на команду:

Используем phpMyAdmin

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

Экспорт

Зайдите в phpMyAdmin и выберите базу данных, с которых вы хотите работать.

Далее выберите вкладку «Экспорт» и, в зависимости от своих предпочтений, быстрый или обычный метод экспорта. Второй подойдет для тех, кто хочет самостоятельно выставить все настройки.

После внесения нужных изменений нажмите «Вперед» и выберите, куда хотите поместить созданный файл. Все, экспорт базы данных был успешно выполнен.

Импорт

Выполнить импорт базы данных тоже совсем несложно. Как и в предыдущем случае, в списке слева выберите нужную вам базу данных, а затем перейдите во вкладку «Импорт».

Выберите файл для импорта на вашем компьютере и проверьте настройки. Скорее всего, они подойдут для импортирования вашего файла, но при желании их можно изменить. Нажмите кнопку «Вперед» — и будет выполнен импорт файла. Вы увидите надпись вроде такой:

Импорт успешно завершён, выполнено 32 запроса.

Ниже в красной рамке могут идти сообщения о возникших ошибках (например, о дублировании).

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

Заключение

Выбор подходящего метода экспорта и импорта баз данных зависит только от вас и ваших предпочтений – кому-то проще работать в консоли, а для кого-то понятнее phpMyAdmin. Главное, нужно регулярно делать бэкапы, в том числе и ваших баз данных.

Кстати, полезную информацию о базах данных я также нашел в Справочном центре Timeweb.

Mysql портирование кода из msql в mysql

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

Пол Дюбуа (Paul DuBois)

В настоящее время помощь в приведении данного справочного руководства (Reference Manual) к корректному и понятному виду. Другими словами, перевод текстов Монти и Дэвида с их собственного английского на английский, понятный другим людям.

Джанмассимо Вигаццола (Gianmassimo Vigazzola) или

Первоначальный перенос на Win32/NT.

Ким Олдэйл (Kim Aldale)

Помог переписать самые первые тексты Монти и Дэвида с их собственного английского на нормальный английский.

Пер Эрик Олссон (Per Eric Olsson)

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

Ирэна Панциров (Irena Pancirov)

Перенос Win32 с помощью компилятора Borland. mysqlshutdown.exe и mysqlwatch.exe

Дэвид Дж. Хьюз (David J. Hughes)

Благодарность за вклад в создание SQL-базы данных, распространяемой по принципу shareware . Начав свою работу в компании TcX (предшественник MySQL AB) с mSQL, мы, однако, пришли к выводу, что эта база данных не удовлетворяет нашим требованиям. Поэтому вместо нее был написан интерфейс SQL к нашему компоновщику приложений Unireg. На программу mysqladmin и клиент mysql оказали значительное влияние их двойники в mSQL. Мы приложили много усилий, чтобы сделать синтаксис MySQL расширенным вариантом mSQL. Многие идеи API были заимствованы из mSQL, чтобы упростить перенос свободно распространяемых программ mSQL в MySQL API. Программное обеспечение MySQL не содержит никакого кода из mSQL. Два файла в дистрибутиве ( client/insert_test.c и client/select_test.c ) базируются на соответствующих (не защищенных авторскими правами) файлах дистрибутива mSQL, но они модифицированы в примеры, показывающие, какие изменения необходимы для преобразования кода из mSQL в сервер MySQL. (авторское право на mSQL принадлежит Дэвиду Дж. Хьюзу (David J. Hughes.))

Фред Фиш (Fred Fish)

Благодарность за его великолепную отладку C и библиотеку трассировки. Монти сделал ряд небольших улучшений к этой библиотеке (скорость и другие возможности).

Ричард А. О’Кифи (Richard A. O’Keefe)

Благодарность за его общедоступную строковую библиотеку.

Генри Спенсер (Henry Spencer)

Благодарность за его библиотеку регулярных выражений, использованную в WHERE column REGEXP regexp .

Ассоциация Свободного ПО (Free Software Foundation)

От этой ассоциации мы получили прекрасный компилятор ( gcc ), библиотеку libc (из которой заимствовали strto.c для того, чтобы получить код, работающий под Linux) и библиотеку readline (для клиента mysql ).

Ассоциация Свободного ПО (Free Software Foundation) и команда

разработчиков Xemacs (The XEmacs development team) Благодарность за действительно великолепный редактор/среду, который использовали практически все в MySQL AB/TcX/detron.

Патрик Линч (Patrick Lynch)

Благодарность за помощь в получении http://www.mysql.com/.

Фред Линдберг (Fred Lindberg)

Благодарность за установку qmail для управления списком рассылки MySQL и за неоценимую помощь, которую мы получили в управлении списком рассылки MySQL.

Игорь Романенко (Igor Romanenko)


mysqldump (ранее msqldump , Монти осуществил перенос этой утилиты и усовершенствовал ее).

Юрий Дарио (Yuri Dario)

Благодарность за поддержку и расширение переноса MySQL на OS/2.

Тим Банке (Tim Bunce, Alligator Descartes)

Благодарность за интерфейс DBD (Perl).

Тим Банке (Tim Bunce)

Эндриас Коуниг (Andreas Koenig)

Благодарность за интерфейс Perl для сервера MySQL.

Юджин Чан (Eugene Chan)

Благодарность за перенос PHP для сервера MySQL.

Майкл Дж. Миллер мл. (Michael J. Miller Jr.)

Благодарность за первое руководство по MySQL. И за большое количество орфографических и грамматических правок в разделе FAQ (который уже давно превратился в руководство по MySQL).

Ян Кайлин (Yan Cailin)

Первый перевод справочного руководства по MySQL на упрощенный китайский язык в начале 2000 года; на этом руководстве базировались версии, кодированные на Big5 и HK (http://mysql.hitstar.com/). Персональная домашняя страничка на linuxdb.yeah.net.

Джованни Маруцелли (Giovanni Maruzzelli)

Благодарность за перенос iODBC (Unix ODBC).

Крис Провензано (Chris Provenzano)

Переносимые потоки pthreads пользовательского уровня. Выдержка из документа по авторским правам на MySQL: «Этот продукт включает в себя программное обеспечение, разработанное Крисом Провензано, Калифорнийский университет, Беркли (Chris Provenzano, the University of California, Berkeley) и его помощниками». В настоящее время мы используем версию 1_60_beta6 с патчами Монти (см. mit-pthreads/Changes-mysql ).

Ксавьер Лерой (Xavier Leroy)

Автор LinuxThreads (используемых сервером MySQL под Linux).

Зарко Мокник (Zarko Mocnik)

Упорядочение для словенского языка и разработка модуля cset.tar.gz , который облегчает добавление других кодировок.

Макрос кодировки _MB и наборы символов ujis и sjis .

Джошуа Чамас (Joshua Chamas)

Основы для параллельной вставки, расширенный синтаксис даты, отладка под NT и ответы по списку рассылки MySQL.

Ив Карлиер (Yves Carlier)

mysqlaccess, программа, показывающая права доступа для пользователя.

Рис Джонс (Rhys Jones) (И GWE Technologies Limited)

Благодарность за JDBC, модуль для извлечения данных из базы данных MySQL при помощи помощью Java-клиента.

Др. Ксайэокун Келвин ZHU (Dr Xiaokun Kelvin ZHU)

Дальнейшая разработка JDBC-драйвера и других относящихся к MySQL Java-программ.

Джеймс Купер (James Cooper)

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

Рик Мехелик (Rick Mehalick)

Благодарность за xmysql , графический X-клиент для сервера MySQL.

Дуг Сиск (Doug Sisk)

Благодарность за разработку пакетов RPM для MySQL под RedHat Linux.

Дайменд Александер В. (Diemand Alexander V.)

Благодарность за разработку пакетов RPM для MySQL под RedHat Linux-Alpha.

Энтони Пеймес Олив (Antoni Pamies Olive)

Благодарность за разработку пакетов RPM многих клиентов MySQL для Intel и SPARC.

Джей Бладвортс (Jay Bloodworth)

Благодарность за разработку пакетов RPM для версии MySQL 3.21.

Джошен Видманн (Jochen Wiedmann)

Благодарность за поддержку модуля Perl DBD::mysql .

Терьен Джилберт (Therrien Gilbert) , Джин — Марк Поуйот

(Jean-Marc Pouyot) j Сообщения об ошибках на французском языке.

Петр Снайдр (Petr snajdr),

Сообщения об ошибках на чешском языке.

Ярослав Левандовски (Jaroslaw Lewandowski)

Сообщения об ошибках на польском языке.

Мигель Эйнджел Фернандес Роиз (Miguel Angel Fernandez Roiz)

Сообщения об ошибках на испанском языке.

Рой — Магн Моу (Roy-Magne Mo)

Сообщения об ошибках на норвежском языке и тестирование версии 3.21.#.

Тимур И. Бакеев (Timur I. Bakeyev)

Сообщения об ошибках на русском языке.

brenno@dewinter.com и Филиппо Грасилли (& Filippo Grassilli)

Сообщения об ошибках на итальянском языке.

Дирк Мюнцингер (Dirk Munzinger)

Сообщения об ошибках на немецком языке.

Биллик Стефан (Billik Stefan)

Сообщения об ошибках на словацком языке.

Стефан Сарою (Stefan Saroiu)

Сообщения об ошибках на румынском языке.

Петер Фехер (Peter Feher)

Сообщения об ошибках на венгерском языке.

Роберто М. Серкуейра (Roberto M. Serqueira)

Сообщения об ошибках на португальском языке.

Карстен Х. Педерсен (Carsten H. Pedersen)

Сообщения об ошибках на датском языке.

Арйен Дж. Ленц (Arjen G. Lentz)

Сооббщения об ошибках на немецком языке, завершение ранее начатого перевода.

Дэвид Сеседоут (Dav >

Идеи по проверке безопасности DNS-имен хостов.


Вэй-Джу Чен (Wei-Jou Chen)

Поддержка китайских символов (BIG5).

Большое количество функциональных возможностей для китайской (GBK) кодировки.

Зеев Зураски (Zeev Suraski)

Форматирование значений времени в FROM_UNIXTIME() , функции ENCRYPT() ; кроме того, он является консультантом по bison . Активный член списка рассылки.

Лук де Боуер (Luuk de Boer)

Перенос (и расширение) набора тестов производительности для DBI / DBD . Оказал большую помощь по тестам crash-me и тестам производительности. Некоторые новые функции даты. Скрипт mysql_setpermissions .

Джей Флагерти (Jay Flaherty)

Большая часть раздела DBI / DBD в этом руководстве.

Пол Саузвортс (Paul Southworth) , Рэй Лоуйзага (Ray

Loyzaga) Корректура данного справочного руководства на английском языке.

Алексей Михайлов (Alexis Mikhailov)

Определяемые пользователем функции (UDF); функции CREATE и DROP .

Андреас Бобак (Andreas F. Bobak)

Расширение AGGREGATE к функциям UDF.

Росс Уэйклин (Ross Wakelin)

Помощь в установке InstallShield для MySQL-Win32.

Джетро Райт III (Jethro Wright III)

Джеймс Перейра (James Pereria)

Mysqlmanager, Win32 GUI-программа для администрирования сервера MySQL.

Курт Сэмпсон (Curt Sampson)

Перенос потоков MIT-pthreads на NetBSD/Alpha и NetBSD 1.3/i386.

Энтони Т. Куртис (Antony T. Curtis)

Перенос программного обеспечения базы данных MySQL на OS/2.

Мартин Рамш (Martin Ramsch)

Примеры в учебнике MySQL.

Стив Харвей (Steve Harvey)

Благодарность за более безопасное выполнение mysqlaccess .

Конарк IA-64, Центр устойчивых систем, частная компания с ограниченной

ответственностью (Konark IA-64 Centre of Persistent Systems Private Limited) http://www.pspl.co.in/konark/. Помощь в переносе сервера MySQL на Win64.

Алберт Чин-Эй-Янг (Albert Chin-A-Young).

Конфигурирование обновлений для Tru64, поддержка больших файлов и улучшенная поддержка оболочек TCP.

Джон Бирел (John Birrell)

Эмуляция pthread_mutex() для OS/2.

Бенджамин Пфлюгманн (Benjamin Pflugmann)

Расширение таблиц MERGE для обработки запросов INSERT . Активный член списков рассылки MySQL.

Гильем Бишо (Guilhem Bichot)

Исправление трактовки показателя степени для DECIMAL . Автор mysql_tableinfo .

Джоселин Фурнье (Jocelyn Fournier)

Отличное исследование и описание бесчисленного количества ошибок (особенно в коде вложенных запросов в MySQL 4.1)

Джордж Ричтер (Georg Richter)

Тестирование и выявление ошибок в MySQL 4.1 Новое PHP 5.0 расширение mysqli (API) для использования с MySQL 4.1 и выше.

Марк Лиянаж (Marc Liyanage)

Поддерживает пакеты для Mac OS X и дает бесценную информацию о том, как создавать PKG для Mac OS X.

Другие помощники, те, кто нашел ошибки, и тестировщики: Джеймс Х. Томпсон (James H. Thompson), Морицио Менгини (Maurizio Menghini), Войцех Трик (Wojciech Tryc), Лука Берра (Luca Berra), Зарко Мокник (Zarko Mocnik), Уим Бонис (Wim Bonis), Элмар Хейнке (Elmar Haneke), , , , Тед Депнер (Ted Deppner) , Майк Саймонс (Mike Simons), Джакко Хайватти (Jaakko Hyvatti).

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

Огромное уважение — тем, кто помогает нам отвечать на вопросы списка рассылки :

Дэниэл Кох (Daniel Koch)

Лук де Боуер (Luuk de Boer)

Вопросы по тестам производительности.

Тим Сэйлер (Tim Sailer)

Вопросы по DBD-mysql .

Бойд Лин Гербер (Boyd Lynn Gerber)

Вопросы, относящиеся к SCO.

Ричард Мехелик (Richard Mehalick)

Вопросы, относящиеся к xmysql , и вопросы базовой инсталляции.

Зеев Зураски (Zeev Suraski)

Вопросы по конфигурации модулей Apache (log & auth), вопросы, относящиеся к PHP, синтаксису SQL и другие общие вопросы.

Франциск Гуаш (Francesc Guasch)

Джонатан Дж Смит (Jonathan J Smith)

Вопросы, относящиеся к специфике операционных систем Linux, синтаксису SQL и другим вещам, которые могут понадобиться в работе.

Дэвид Склар (Dav >

Использование MySQL совместно с PHP и Perl.

Элистер МакДоналд (Alistair MacDonald)

Пока не определился, легко переходит к новым темам, может справиться с Linux и, возможно, с HP-UX. Пытается заставить пользователей применять mysqlbug .

Джон Лайен (John Lyon)

Вопросы по инсталляции MySQL на системах Linux с использованием либо файлов .rpm , либо компиляции из исходного кода.

Лорвид Лтд. (Lorv >

Простые вопросы выписки счетов, лицензии, поддержки, авторских прав.

Патрик Шерил (Patrick Sherrill)

Вопросы по ODBC и интерфейсу VisualC++.

Рэнди Хармон (Randy Harmon)

Вопросы по DBD , Linux, некоторые вопросы по синтаксису SQL.

C.3. Спонсоры MySQL

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

VA Linux / Andover.net

Редактирование руководства по MySQL.

Студия Stork Design (Stork Design studio)

Веб-сайт MySQL, использовавшийся в 1998-2000гг.

Эта компания внесла вклад в разработку для платформ Windows и Linux.

Эта компания внесла вклад в разработку для Linux/Alpha.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL