Original post: http://anothermysqldba.blogspot.com/2014/05/mysql-error-1118-42000-mysql-50-to.html
Então, eu tive recentemente um banco de dados TBs que que eu tinha que atualizar a partir do MySQL 5.0 para o MySQL 5.5.
Este blog vai tocar no seguinte:
Então eu comecei eu tinha que verificar algumas coisas primeiro.
New DB foi
OK Eu preferiria ter algo para sql_mode sobre um valor vazio.
Então eu deixar isso passar.
Você pode ler mais sobre essa configuração aqui:
http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-other-changes-strict-mode.html
O comando acima me permitiu atualizar pelo menos mysql uma verificação das tabelas. Para ser seguro eu ainda criar um script para descarregar e carregar todas as tabelas. (Sim toda a TBS deles)
Não tome um corte curto e assumir tudo está ok.
Se você estiver recebendo erros mysqldump e recarregar os arquivos. É melhor prevenir do que remediar depois.
Uma vez que os dados são carregados em 5.5 + posso rever e ajustar as variáveis.
Escusado será dizer que vai levar algum tempo para descarregar e carregar TBs de dados. Eu quero dar a todos a oportunidade de escravos que puder para alcançar o mais rápido possível.Enquanto meus scripts shell são dumping e carregamento dos dados, não há razão para o banco de dados não podem ser reunir os logs binários no mesmo período.
Então, agora, enquanto o meu processlist mostrará:
a condição de escravo mostra:
Slave_IO_Running: Sim
Slave_SQL_Running: Nenhuma
Então, eu estou reunindo registros enquanto eu limpar o banco de dados.
Isso deve permitir que o banco de dados para apanhar rapidamente uma vez que eu estou pronto para ir.
Então, eu tive recentemente um banco de dados TBs que que eu tinha que atualizar a partir do MySQL 5.0 para o MySQL 5.5.
Este blog vai tocar no seguinte:
- 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.
Então eu comecei eu tinha que verificar algumas coisas primeiro.
# The master DB was > select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +--------------------------------------------+
Então eu deixar isso passar.
# 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;
O comando acima me permitiu atualizar pelo menos mysql uma verificação das tabelas. Para ser seguro eu ainda criar um script para descarregar e carregar todas as tabelas. (Sim toda a TBS deles)
Não tome um corte curto e assumir tudo está ok.
Se você estiver recebendo erros mysqldump e recarregar os arquivos. É melhor prevenir do que remediar depois.
Uma vez que os dados são carregados em 5.5 + posso rever e ajustar as variáveis.
Escusado será dizer que vai levar algum tempo para descarregar e carregar TBs de dados. Eu quero dar a todos a oportunidade de escravos que puder para alcançar o mais rápido possível.Enquanto meus scripts shell são dumping e carregamento dos dados, não há razão para o banco de dados não podem ser reunir os logs binários no mesmo período.
mysql> START SLAVE IO_THREAD ;
SELECT /*!40001 SQL_NO_CACHE */ *
Slave_IO_Running: Sim
Slave_SQL_Running: Nenhuma
Então, eu estou reunindo registros enquanto eu limpar o banco de dados.
Isso deve permitir que o banco de dados para apanhar rapidamente uma vez que eu estou pronto para ir.