私は現在Windows OSで作業していますが、MySQLコミュニティサーバー5.6.30をインストールしても問題ありません。私はDBを初期化するスクリプトを持っているし、もう一度、すべて正常に動作します。同じMySQLバージョンを - -MySQL:列サイズの制限
今、私は、Linux環境でこのスクリプトを実行しようとしていると私は次のエラーを取得する:
ERROR 1074 (42000) at line 3: Column length too big for column 'txt' (max = 21845); use BLOB or TEXT instead
スクリプト -
DROP TABLE IF EXISTS text;
CREATE TABLE `texts` (
`id` BINARY(16) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
`txt` VARCHAR(50000) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
を明らかにいくつかありますLinux上で複製する必要があるWindows OS上のMySQLサーバ設定。誰でもアイデアを共有できますか? AWSのRDS上
アップデート1
それも動作しますので、当然のLinuxの上でそのわずかサービスの単なる設定の問題イムかなり確信して。
どのようにしても、UTF8でvarchar 50kに達する方法はわかりますか?私は、TEXTまたはMEDIUMTEXTまたは任意の他に、単なる古いVARCHAR(サイズ)
Updateを使用したくない2
は私が示唆されただけ探して、新しいソリューションのイムを探していないイムさまざまなソリューションを高く評価varchar(50k)がWindowsの下で動作し、Linuxの下で動作しない理由として、答えが得られません。 Btw、charcter set UTF8と照合utf8_general_ciを使用しています。
回答
自分の質問に答えるためには、それはそれは STRICT_TRANS_TABLESに設定し、削除されている必要がありますSQL_MODEの問題でした。
個人的に私は50kの "varchar"はあまりにも長く、とにかく 'text'でなければなりません。 –
http:// stackoverflow。com/questions/25300821/difference-varchar-and-text-in-mysql –
@NiettheDarkAbsol私はテキストを使用したくない、私はそれがvarcharとして動作したい。 –