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

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

2024-03-01 | Elena Zhang

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

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

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

Несмотря на множество сходств, PostgreSQL vs MySQL отличаются друг от друга в ряде аспектов. PostgreSQL хорошо справляется с обработкой сложных запросов, а MySQL хорошо работает в системах OLAP и OLTP. PostgreSQL полностью соответствует ACID и SQL, в то время как MySQL частично соответствует. Изучение 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 (введите имя), чтобы сохранить его.

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

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

Заранее создайте резервную копию базы данных

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

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

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

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

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

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

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

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

Заключение

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

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

поделиться:

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