Original post: http://anothermysqldba.blogspot.com/2014/05/mysql-error-1118-42000-mysql-50-to.html
だから私は最近、私は、MySQL 5.0からMySQLの5.5にアップグレードしなければならなかったことのTBSのデータベースを持っていた。
このブログの記事は、以下に触れたいと思います。
だから私は、私が最初にいくつかのことを確認しなければならなかった始めた。
新しいDBがあった
[OK]を私はむしろ空の値以上のsql_modeのために何かを持っているでしょう。
だから私はそれを手放す。
この設定についての詳細をここに読むことができます。
http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-other-changes-strict-mode.html
上記のコマンドは、私は、少なくともMySQLのテーブルをチェックアップグレードすることができました。 安全のために、私はまだすべてのテーブルをダンプしてロードするbashスクリプトを設定します。 (はい、それらのすべてのTBS)
近道を取ると、すべてがOKであるとは限りません。
あなたが取得している場合はエラーがmysqldumpをし、ファイルを再ロードします。 より良い申し訳ありませんが、後でよりも安全であること。
データは5.5 +にロードされると、私は確認して変数を調整することができます。
それは、データのTBのをダンプしてロードするためにいくつかの時間を取るつもりだと言ってそう言うまでもなく。 私は可能な限り高速に追いつくために、スレーブに私ができるすべての機会を与えたいと思う。 私のシェルスクリプトをダンプし、データをロードしている間、データベースはその間にバイナリログを収集することはできません理由はありません。
だから今、私のPROCESSLISTが表示されている間。
スレーブの状態が示しています。
Slave_IO_Running:はい
Slave_SQL_Running:いいえ
私は、データベースをきれいにしながら、だから私は、ログを収集しています。
これは私が行く準備ができていたら、データベースがすぐに追いつくようにする必要があります。
だから私は最近、私は、MySQL 5.0からMySQLの5.5にアップグレードしなければならなかったことのTBSのデータベースを持っていた。
このブログの記事は、以下に触れたいと思います。
- のsql_mode
- innodb_strict_mode
- SLAVE IO_THREAD
ERROR 1118 (42000) at line 23: 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.
だから私は、私が最初にいくつかのことを確認しなければならなかった始めた。
# The master DB was > select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +--------------------------------------------+
だから私はそれを手放す。
# MASTER SERVER
select @@innodb_strict_mode;
ERROR 1193 (HY000): Unknown system variable 'innodb_strict_mode'
# NEW SERVER mysql> select @@innodb_strict_mode;
+----------------------+
| @@innodb_strict_mode |
+----------------------+
| 1 |
+----------------------+
http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-other-changes-strict-mode.html
mysql> SET GLOBAL innodb_strict_mode=0;
上記のコマンドは、私は、少なくともMySQLのテーブルをチェックアップグレードすることができました。 安全のために、私はまだすべてのテーブルをダンプしてロードするbashスクリプトを設定します。 (はい、それらのすべてのTBS)
近道を取ると、すべてがOKであるとは限りません。
あなたが取得している場合はエラーがmysqldumpをし、ファイルを再ロードします。 より良い申し訳ありませんが、後でよりも安全であること。
データは5.5 +にロードされると、私は確認して変数を調整することができます。
それは、データのTBのをダンプしてロードするためにいくつかの時間を取るつもりだと言ってそう言うまでもなく。 私は可能な限り高速に追いつくために、スレーブに私ができるすべての機会を与えたいと思う。 私のシェルスクリプトをダンプし、データをロードしている間、データベースはその間にバイナリログを収集することはできません理由はありません。
mysql> START SLAVE IO_THREAD ;
SELECT /*!40001 SQL_NO_CACHE */ *
Slave_IO_Running:はい
Slave_SQL_Running:いいえ
私は、データベースをきれいにしながら、だから私は、ログを収集しています。
これは私が行く準備ができていたら、データベースがすぐに追いつくようにする必要があります。