Как конвертировать PostgreSQL в MySQL 3 способами?

В этом блоге представлены 3 эффективных метода миграции PostgreSQL в MySQL, которые помогут вам успешно выполнить этот процесс.

download-icon
Скачайте Бесплатно
Для ВМ, ОС, БД, файлов, NAS и т.д.
elena-zhang

Обновлено Elena Zhang 2024/10/23

Оглавление
  • Способ 1: Конвертация PostgreSQL в MySQL с помощью MySQL Workbench

  • Способ 2: Конвертировать PostgreSQL в MySQL с помощью pg2mysql

  • Способ 3: Экспорт PostgreSQL в файл CSV и импорт его в MySQL

  • Эффективный бэкап БД с Vinchin Backup & Recovery

  • Заключение

Как конвертировать PostgreSQL в MySQL

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

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

PostgreSQL выделяется своей способностью эффективно обрабатывать сложные запросы и поддерживает продвинутые возможности работы с данными, такие как индексы выражений, JSON и расширенные типы данных. Он также отличается строгим соблюдением стандартов ACID и SQL, что делает его идеальным выбором для приложений, где критична точность данных и выполнение сложных транзакций. Кроме того, PostgreSQL поддерживает расширения, такие как PostGIS для работы с геоданными, что делает его более гибким для специфических задач.

MySQL, в свою очередь, обладает преимуществами в области систем OLAP (онлайн аналитической обработки данных) и OLTP (онлайн обработки транзакций), обеспечивая высокую производительность при работе с относительно простыми операциями. Хотя MySQL частично соответствует стандартам ACID и SQL, он компенсирует это скоростью и лёгкостью настройки, что делает его предпочтительным для веб-проектов и приложений с высокими нагрузками на чтение и запись. Например, его возможности по репликации (включая мастер-слейв и мастер-мастер репликацию) и кэшированию запросов позволяют эффективно распределять нагрузку в крупных системах.

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

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

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

В этом блоге мы рассмотрим 3 проверенных способа миграции с PostgreSQL на MySQL, которые помогут вам пройти этот процесс максимально эффективно.

Способ 1: Конвертация PostgreSQL в MySQL с помощью MySQL Workbench

Требования:

  • Запущенный экземпляр PostgreSQL с соответствующим доступом к MySQL.

  • Запущенный сервер MySQL с правами доступа пользователя.

  • Поддерживаемые версии: PostgreSQL 8.0 и новее, MySQL 5.0 и выше, а также MySQL Workbench 5.2.44 или более поздние.

  • Установка MySQL Workbench на Linux, Windows и macOS.

1.     Скачайте, скомпилируйте (Linux и Mac), установите и зарегистрируйте драйвер psqlODBC 32/64-бит.

Windows: скачайте, распакуйте и установите пакет MSI.

Linux: установите iODBC и выполните команду для Debian, Ubuntu или другого дистрибутива на основе Debian.

$> sudo apt-get install iodbc libiodbc2-dev libpq-dev libssl-dev

Для дистрибутивов на основе RPM (таких как RedHat и Fedora):

$> sudo yum install iodbc iodbc-dev libpqxx-devel openssl-devel

Скачайте psqlODBC, извлеките его в каталог на жестком диске, откройте терминал и перейдите в каталог. Выполните следующие действия в терминале.

$> ./configure --with-iodbc --enable-pthreads

$> сделать

$> sudo make install

Mac OS X: получите Xcode из AppStore и установите инструмент (Preferences> Downloads).

Скачайте psqlODBC, извлеките его в каталог на жестком диске, откройте терминал и перейдите в каталог. Выполните следующее в терминале.

$> ./configure --with-iodbc --enable-pthreads

$> CFLAGS="-arch i386 -arch x86_64" make

$> sudo make install

2.     В MySQL Workbench перейдите к Database> Database Migration… чтобы запустить мастер.

3.  На странице Overview, нажмите Start Migration, чтобы открыть страницу Source Selection, выберите PostgreSQL из выпадающего списка, и Connection Method как ODBC (вручную введенные параметры), затем предоставьте здесь данные для подключения (Имя драйвера = имя драйвера ODBC из предыдущего шага). Отметьте галочкой поле Store connection for future usage as (введите имя), чтобы сохранить его.

Проверьте подключение затем нажмите Next.

4.     На странице Target Selection, введите информацию для подключения к MySQL, проверьте подключение, затем нажмите Next.

5.     Подождите, пока экземпляр получит список схем, и нажмите Next.

6.     Выберите схему для миграции, выберите метод сопоставления имен и нажмите Next.

7.     Подождите обратного проектирования выбранной схемы и нажмите Next.

8.     На странице Source Objects нажмите Show Selection, чтобы получить доступные объекты и выбрать элементы, которые вы хотите мигрировать.

9.     После конвертации объекта нажмите Next чтобы продолжить.

10.     На странице Manual Editing, используйте View, чтобы изменить способ отображения мигрированных объектов, и исправьте сопоставление типов столбцов с помощью Column Mappings из выпадающего списка.

Выберите Show Code and Messages для просмотра и редактирования сгенерированного кода MySQL. Дважды щелкните строку базы данных, чтобы переименовать целевой объект. Нажмите Next.

11.  На странице Target Creation Options, выберите Create schema in target RDBMS. Нажмите Next.

Смотрите прогресс выполнения миграции PostgreSQL на странице Create Schema, и проверьте результаты на странице Create Target Results. Нажмите Next.

12.  Настройте миграцию на странице Data Transfer Setup, оставьте настройки по умолчанию и нажмите Next.

13.  Будет представлен отчет о миграции, кликните Finish и закройте его.

14.  Проверьте данные. Откройте SQL-редактор, подключенный к MySQL, и введите команду:

SELECT * FROM databasename.

Способ 2: Конвертировать PostgreSQL в MySQL с помощью pg2mysql

1.     Скачайте pg2mysql и распакуйте архив.

2.     Установите PHP.

sudo apt install phpx.x-cli

3.     Создайте дамп базы данных PostgreSQL (.sql).

sudo -u postgres pg_dump --format p --inserts DBNAME > /path/to/file.sql

4.     Перейдите в папку pg2mysql-x.x

cd pg2mysql- x.x/

5.     Выполните команды.

php pg2mysql_cli.php /path/to/pd/dump/file.sql /mysql/location/path/file.sql

6.     Прочитайте измененный дамп sql и замените MyISAM на InnoDB.

7.     Восстановите дамп в пустую базу данных MySQL.

8.     Добавьте индексы вручную в каждую таблицу.

Способ 3: Экспорт PostgreSQL в файл CSV и импорт его в MySQL

1.     Извлеките определение таблицы PostgreSQL с помощью pg_dump.

-bash-4.2$ <strong>pg_dump -st table schema</strong>

--

-- PostgreSQL database dump

--

-- Dumped from database version xx

-- Dumped by pg_dump version xx

2.     Перепишите утверждение, чтобы работать в MySQL вручную.

CREATE TABLE name (

    actor_id integer auto_increment NOT NULL primary key,

    first_name varchar(45) NOT NULL,

    last_name varchar(45) NOT NULL,

    last_update timestamp DEFAULT now() NOT NULL

);

3.     Добавьте вторичные индексы в экземпляр MySQL с переписанным утверждением.

Сделайте это для всех таблиц в целевой схеме.

schemea-# dt

List of relations

Schema | Name | Type | Owner  

4.     Экспортируйте данные PostgreSQL в файл CSV.

schema=# copy table to 'location.csv' delimiter ',' CSV HEADER;

COPY xx

5.     Импортируйте данные в MySQL.

mysql-js> util.importTable("/file/path/.csv", {schema: "dbname", table: "name", dialect: "csv-unix", skipRows: 1, showProgress: true}

Параллельный импорт.

mysqlsh mysql://root:@xxxxx --ssl-mode=DISABLED -- util import-table /r/xx.dump --schema=xx --table=xx --bytes-per-chunk=xx --linesTerminatedBy=$' '

Эффективный бэкап БД с Vinchin Backup & Recovery

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

Vinchin Backup & Recovery предлагает автоматизированное резервное копирование для широкого спектра систем: Oracle Database, MySQL, SQL Server, PostgreSQL, Postgres Pro, MariaDB, более 15 виртуальных платформ, NAS и серверов на Linux и Windows. Решение обеспечивает минимальные усилия для восстановления данных в исходную или новую базу всего за 4 шага.

резервное копирование баз данных с помощью Vinchin

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

Для оптимизации использования хранилища Vinchin Backup & Recovery предлагает встроенные функции дедупликации и сжатия данных, что позволяет сократить объём резервных копий минимум на 50%, существенно снижая затраты на хранение.

Кроме того, решение доступно по экономически выгодной цене, подходящей для компаний любого масштаба. Попробуйте все возможности и преимущества системы с бесплатной 60-дневной пробной версией Enterprise-версии.

Заключение

PostgreSQL и MySQL — это две очень популярные и мощные системы управления базами данных, каждая из которых имеет свои уникальные преимущества. Некоторые предприятия могут принять решение о переходе с PostgreSQL на MySQL (см. Миграция с MySQL на PostgreSQL) по различным причинам, таким как удобство использования или доступ к специфическим функциям.

Прежде чем начать миграцию, важно настроить резервное копирование базы данных, чтобы предотвратить потерю или повреждение данных в процессе. Vinchin Backup & Recovery упрощает резервное копирование и восстановление баз данных, выполняя весь процесс в 4 шага. Кроме того, решение защищает данные от угроз благодаря встроенному мониторингу IO, который блокирует любые попытки несанкционированного доступа.

поделиться:

Категории: База данных
Рекомендуемые статьи