web-dev-qa-db-ja.com

1行目の 'import■/'の近くでmysqldumpファイルERROR 1064(42000)をインポートしているとき

Windowsのコマンドラインでmysqldump.exeによって作成された以下のダンプファイルをインポートできません

/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `attachment_types` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `DESCRIPTION` varchar(50) DEFAULT NULL,
  `COMMENTS` varchar(256) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `UK_ATTACHMENT_TYPES___DESCRIPTION` (`DESCRIPTION`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

コマンドラインでファイルをインポートしている間

mysql --user=root --password=root < mysqldumpfile.sql

エラーを投げる

ERROR 1064 (42000) near ' ■/ ' at line 1

誰か助けてください。

15
Pavan Kumar N

最終的に私は解決策を得た

2つのオプションが必要です

  • --default-character-set=utf8:これは、UTF8が各フィールドに使用されることを保証します
  • --result-file=file.sql:このオプションは、UTF8を使用しない可能性が高いオペレーティングシステムをダンプデータが通過するのを防ぎます。代わりに、指定されたファイルに直接ダンプデータを渡します。

これらの新しいオプションを使用すると、ダンプコマンドは次のようになります。

mysqldump -u root -p --default-character-set=utf8 --result-file=database1.backup.sql database1

インポート中に、オプションで次を使用できます。

mysql --user=root --password=root --default_character_set utf8 < database1.backup.sql

ソース: http://nathan.rambeck.org/blog/1-preventing-encoding-issues-mysqldump

27
Pavan Kumar N

入力ファイル(mysqldumpfile.sql)はUTF-8エンコードで作成されたため、.SQLファイルで見えない「行1」の最初の3バイトは バイトオーダーマーク(BOM)シーケンス

デフォルトの文字セットをUTF-8に変更する

mysql --user=root --password=root --default_character_set utf8 < mysqldumpfile.sql
4
valex

これは、Windowsで必要なインポートコマンドです。

mysql --user=root --password=root --default_character_set utf8 database2 < database1.backup.sql

インポートするために必要なデータベース

2
wired00