web-dev-qa-db-ja.com

行Xのエラー1031(HY000): 'TBL'のテーブルストレージエンジンにはこのオプションがありません

mysqldumpを次のシステムにインポートしようとしています:

# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
# rpm -qa | grep ^mysql
mysql-community-libs-compat-5.7.11-1.el7.x86_64
mysql-community-libs-5.7.11-1.el7.x86_64
mysql57-community-release-el7-7.noarch
mysql-community-client-5.7.11-1.el7.x86_64
mysqltuner-1.6.0-1.el7.noarch
mysql-community-server-5.7.11-1.el7.x86_64
mysql-community-common-5.7.11-1.el7.x86_64
# 

まだ、私は次のエラーが出ます:

# mysql X < ~/X.mysqldump
ERROR 1031 (HY000) at line 13639: Table storage engine for 'Y' doesn't have this option
#

Ymysqldumpテーブル:(機密情報をZsに置き換えました):

DROP TABLE IF EXISTS `Y`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `Y` (
  `Z` int(10) NOT NULL AUTO_INCREMENT,
  `Z` int(10) NOT NULL DEFAULT '0',
  `Z` int(10) NOT NULL DEFAULT '0',
  `Z` tinyint(1) NOT NULL DEFAULT '0',
  `Z` tinyint(1) NOT NULL DEFAULT '1',
  `Z` int(10) NOT NULL DEFAULT '0',
  `Z` datetime DEFAULT NULL,
  `Z` datetime DEFAULT NULL,
  PRIMARY KEY (`Z`),
  KEY `Z` (`Z`),
  KEY `Z` (`Z`),
  KEY `Z` (`Z`),
  KEY `Z` (`Z`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED COMMENT='InnoDB free: 8192 kB; (`Z`) REFER `Z/';
/*!40101 SET character_set_client = @saved_cs_client */;

/etc/my.cnfはすべてデフォルトですが、次の行を追加しました。

# tail -1 /etc/my.cnf
innodb_buffer_pool_size = 64G
# 

また、ここは完全です mysql> SHOW VARIABLES LIKE 'innodb%'; スタック。

先に進みます MySQL :: MySQL 5.7リファレンスマニュアル:: 14.4 InnoDB構成 ですが、明らかに何か不足しています...

お知らせ下さい。

ありがとう!

3
alexus

MySQL 5.7では、ROW_FORMAT=FIXEDはInnoDBストレージエンジンのオプションではなくなりました。

MySQL 5.7ドキュメント innodb_default_row_format によると、これらはテーブルの行フォーマットに使用できる値です:

  • DYNAMICCOMPACTREDUNDANTはデフォルト値として使用できます
  • COMPRESSEDはデフォルト値に許可されていませんが、明示的にROW_FORMAT=COMPRESSEDを使用できます

MySQL 5.7ドキュメントでは、InnoDBのROW_FORMAT=FIXEDについての言及はありません。

空の列の値は、埋められた列の値と同じ記憶域を占有しますか? と題して、約8か月の投稿への回答を書きました。これは、COMPACTREDUNDANTの違いを説明しています。ダンプ定義で、ROW_FORMAT=COMPACTまたはROW_FORMAT=REDUNDANTのいずれかに変更する必要があります。 VARCHAR列を、ROW_FORMAT=FIXEDがまだ存在しているかのように同じ特性で動作させたい場合は、すべてのVARCHAR列をCHARに変更します。次に、ダンプをロードします。

ROW_FORMAT=FIXEDは本当にMyISAMにメリットがあることを覚えておいてください(私の古い投稿を参照してください どのDBMSが超高速読み取りと単純なデータ構造に適していますか?

2
RolandoMySQLDBA

/etc/my.cnfファイルを編集します。

以下にパラメータを追加します。

[mysqld]

innodb_strict_mode=off

今、サーバーを再起動します

1
user149203