web-dev-qa-db-ja.com

MySQLデータベースにpostgresqlダンプファイルからデータを入力する

実際、私はpostgresqlによって生成されたSQLファイルからMySQLデータベースを作成する必要があります

pg_dump dbname > myfile.sql

だから、私が好きにしようとすると

mysql> source myfile.sql

これは明らかに機能しません。 70%のテーブルにデータを入力しましたが、それを実現する方法はありますか?

Postgresqlのソースファイルから、MySqlのデータベースを入手してデータを追加できますか。

21
Nikhil Sharma

データと構造をpostgresテーブルから対応するmysqlに移行する場合、最も簡単な方法は、次のようなデータベース変換ツールを使用することです。 ESF Data Migration Toolkit またはオープンソースの対応物 openDBCopy

移行ツールを使用したくない、または使用できず、データを移行するだけの場合は、別の簡単な方法として、PostgreSQLからCSV形式でデータをエクスポートしてから、MySQLにインポートすることができます。次のようなコマンド:

ON Postgres(エクスポート):

COPY (SELECT query) TO '/path to csv file -*.csv'; 

ON Mysql(インポート):

load data infile 'path to csv file-*.csv' into table tablename fields terminated by ',' lines terminated by '\n' . 

とにかくダンプツール(pg_dump)を続行したい場合は、このオプションを追加して、MySQLがよりよく理解できるダンプファイルを作成できます。

-d --data-only --no-owner --no-acl --attribute-inserts --disable-dollar-quoting --no-tablespaces

ソースデータベースの構造によっては、MysQLが生成されたダンプファイルを理解できるようにダンプファイルを操作する必要がある場合があることに注意してください...

22
aleroot

データを失うことなく移行する最良の方法は、Mysql Workbenchの移行を使用することです。これは チュートリアル で移行の方法を説明しています。チュートリアルで言及していない中で、私が重要であるとわかったものは次のとおりです。

  • 最新のpostgresドライバーをインストールして、ソースpostgresデータベースに接続します。このドライバーのインストール方法は、この tutoria にあります。
  • ここ からpostgres odbcドライバをダウンロードしてインストールします
  • インストール後、「Open ODBC Administrator」1にドライバが表示されます。 enter image description here 2。
  • ソースのpostgresデータベースをセットアップするときは、ドライバーとして「PostgreSQL Unicode(x64)」を使用してください enter image description here

注:「PostgreSQL ANSI(x64)」をドライバーとして使用すると、移行中にエラーが発生します。データにUnicode文字が含まれている可能性があります。

3
javed