web-dev-qa-db-ja.com

Wordpressデータベースのインポート:行サイズが大きくすぎます

Windowsのコマンドプロンプトを使って、私のWordpressデータベースのダンプを作成しました。

mysqldump -u username -p databasename > filename.sql

次に、別のサーバーにインポートします。

mysql -u username -p databasename < filename.sql

Wordpress_optionsテーブルのvalues列をインポートすると、このエラーが発生します。

#1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. 

奇妙なことに、元のデータベースと新しいデータベースの両方がこの列に 'longtext'を使用しています。これは4GBのデータを格納できると私は信じています。私のオプションの値の列はたった1.9MBです!

それがmysqlの設定かどうか私は思っていますか?最大パケットサイズを16MBに、キーバッファサイズを32MBに設定しました。

EDITこれはWordPressオプションテーブルを作成するSQLです。

--
-- Table structure for table `wordpress_options`
--

DROP TABLE IF EXISTS `wordpress_options`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wordpress_options` (
  `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `option_name` varchar(64) NOT NULL DEFAULT '',
  `option_value` longtext NOT NULL,
  `autoload` varchar(20) NOT NULL DEFAULT 'yes',
  PRIMARY KEY (`option_id`),
  UNIQUE KEY `option_name` (`option_name`)
) ENGINE=InnoDB AUTO_INCREMENT=4872 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

コマンドラインの代わりにphpMyAdminを使ってインポートすることも試みましたが、結果は同じです。

1
Chris

My.iniのinnodb_log_file_sizeが小さすぎると、MySQL 5.6.20以降で問題が発生します。私は私のものを16Mに変更し、問題は解決しました。解決策を提供してくれた@Ottoに感謝します。

http://dev.mysql.com/doc/relnotes/mysql/5.6/ja/news-5-6-20.html

1
Chris