logo
Блог Vinchin База данных Как преобразовать PostgreSQL в MySQL 3 способами

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

2023-01-11 | Yulia Qin

Оглавление
  • Способ 1: Преобразование PostgreSQL в MySQL с помощью MySQL Workbench
  • Способ 2: Преобразовать PostgreSQL в MySQL с помощью pg2mysql
  • Способ 3: Экспортируйте PostgreSQL в файл CSV и импортируйте его в MySQL
  • Создать резервное копирование базы данных заранее
  • Обобщение

1673429563878966.jpg

PostgreSQL и MySQL - это бесплатные СУБД с открытым кодом (системы управления реляционными базами данных), любимые пользователями по всему миру. Они соответствуют стандарту ACID, поддерживают кластеризацию и NFT (network fault tolerance). Обе они имеют активную поддержку сообщества.

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

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

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

Способ 1: Преобразование PostgreSQL в MySQL с помощью MySQL Workbench

Требования:

- Работающий экземпляр PostgreSQL с надлежащим доступом к MySQL.

- Работающий сервер MySQL с привилегиями доступа пользователя.

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

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

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

$> make

$> 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 перейдите в БД > Миграция БД..., чтобы запустить визард.

3.   На странице Обзор нажмите Начать Миграцию, чтобы открыть страницу Выбор Источник, выберите PostgreSQL из комбинированного списка, и Метод Подключения как ODBC (параметры вводятся вручную), затем укажите детали подключения здесь (Driver name=ODBC driver name из предыдущего шага). Установите флажок Сохранить подключение для использования в будущем (введите имя), чтобы сохранить его.

Протестируйте подключение и нажмите кнопку Далее.

4.   На странице Выбор Цели введите информацию о подключении для MySQL, протестируйте подключение, затем нажмите Далее.

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

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

7.   Подождите обратной разработки выбранной схемы и нажмите Далее.

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

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

10.  На странице Ручное редактирование используйте Вид, чтобы изменить способ отображения мигрированных объектов, и фиксируйте мапиннг типов колонок с помощью Мапиннгов Колонок из выпадающего списка.

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

11.  На странице Параметры создания целевого объекта выберите Создать схему в целевой СУБД. Нажмите кнопку Далее.

Посмотрите ход выполнения миграции PostgreSQL на странице Создать схему и проверьте результаты на странице Результаты созданного целевого. Нажмите кнопку Далее.

12.  Настройте миграцию на странице Параметры Передачи Данных, оставьте параметры по умолчанию и нажмите Далее.

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

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=$' '

Создать резервное копирование базы данных заранее

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

Vinchin Backup & Recovery автоматизирует резервное копирование баз данных для Oracle DB, MySQL, SQL Server, PostgreSQL и т.д., а также минимизирует восстановление до исходной или новой целевой базы данных за 4 шага.

image.png

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

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

Вы также можете сократить размер данных как минимум на 50% с помощью дедупликации и сжатия данных для экономии храненилища и затрат.

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

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

Обобщение

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

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

поделиться:

Категории:Database Tips
Может быть, вам также понравится...