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を使ってインポートすることも試みましたが、結果は同じです。
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