生成される MySQL ダンプのフォーマットが正しくないため、データベースの移行が失敗します

Created:

2016-12-12 03:40:34 UTC

Modified:

2017-08-08 13:19:32 UTC

3

Was this article helpful?


Have more questions?

リクエストを送信

生成される MySQL ダンプのフォーマットが正しくないため、データベースの移行が失敗します

Applicable to:

  • Plesk 10.3 for Linux/Unix

症状

MySQL バージョン 3.x のソースサーバから MySQL 5.x へデータを移行しようとすると、移行ログに以下のエラーが表示されます。
ERROR:  (hosting object '<any domain with attached database>')       Failed deployment of database <name of database> (domain <any domain with attached database>)

ERROR:  ()      Execution of /usr/bin/mysql --no-defaults -u admin -h localhost -P 3306 <name of database> failed with return code 1.
Stdin is
source <temporary path to backup file>;
exit
Stderr is
ERROR 1064 (42000) at line 4 in file: '<temporary path to backup file>5': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-------------------------------------------------------

DROP TABLE IF EXIS' at line 1

原因

ソースサーバにおいて、データベースダンプは mysqldump ユーティリティを使用して生成され、ダンプファイルのヘッダはデフォルトで次のようになります。
-- MySQL dump 8.23
--
-- Host: localhost    Database: <name of database>
---------------------------------------------------------
-- Server version       3.23.58

ところが宛先サーバでは、ダンプファイルのヘッダは次のようになります。
-- MySQL dump 10.11
--
-- Host: localhost    Database: apsc
-- ------------------------------------------------------
-- Server version       5.0.77
デリミタ行に次のような相違があるため、移行が失敗します。

-- ------------------------------------------------------ (MySQL 5 の場合)
--------------------------------------------------------- (MySQL 3 の場合)

解決策

添付された DbBundle.pm を宛先サーバの以下のフォルダに置きます。
/usr/local/psa/PMM/agents/shared/Storage/DbBundle.pm
他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。