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
誰か助けてください。
最終的に私は解決策を得た
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
入力ファイル(mysqldumpfile.sql)はUTF-8
エンコードで作成されたため、.SQLファイルで見えない「行1」の最初の3バイトは バイトオーダーマーク(BOM)シーケンス
mysql --user=root --password=root --default_character_set utf8 < mysqldumpfile.sql
これは、Windowsで必要なインポートコマンドです。
mysql --user=root --password=root --default_character_set utf8 database2 < database1.backup.sql
インポートするために必要なデータベース