row_formatはFIXEDに設定できません。lower_case_table_names変数は一致している必要があります。max_allowed_packetパラメータ設定は少なくとも1GBである必要があります。connect_timeoutは10より大きい必要があります。row_formatの値がFIXEDの場合、テーブル内の各行の格納長が制限値を超えるとオーバーフローが発生し、エラーが報告されます。そのため、DYNAMICなど他のモードに変更し、各行の格納長がコンテンツの長さに応じて変化するようにする必要があります。 row_formatパラメータをDYNAMICに変更します。 alter table table_name row_format = DYNAMIC;
show table status like 'table_name'\\G;
mysql> show table status like 'table_name'\\G;*************************** 1. row ***************************Name: table_nameEngine: InnoDBVersion: 10Row_format: DynamicRows: 5......1 row in set (0.00 sec)
lower_case_table_namesは、MySQLが大文字と小文字を区別するかどうかを設定するパラメータです。異なる値の意味は以下の通りです:
WindowsまたはmacOS環境では大文字と小文字は区別されませんが、Linux環境では区別されます。異なるシステム間の互換性を確保するために、大文字と小文字の区別ルールを統一する必要があります。lower_case_table_namesの値を確認します。show variables like '%lower_case_table_names%';
my.cnfを変更します。my.cnf設定ファイルのデフォルトパスは/etc/my.cnfです。現場の実際の状況に準じてください。lower_case_table_names = 1
[$Mysql_Dir]/bin/mysqladmin -u root -p shutdown[$Mysql_Dir]/bin/safe_mysqld &
show variables like '%lower_case_table_names%';
mysql> show variables like '%lower_case_table_names%';+------------------------+-------+| Variable_name | Value |+------------------------+-------+| lower_case_table_names | 1 |+------------------------+-------+1 row in set (0.00 sec)
max_allowed_packetは最大許容伝送パケットです。設定が大きすぎると、より多くのメモリを使用してパケット損失が発生し、異常に大きなトランザクションパケットSQLを捕捉できなくなります。設定が小さすぎると、プログラムエラーやバックアップ失敗を引き起こす可能性があり、ネットワークパケットの頻繁な送受信が発生し、システムパフォーマンスに影響を与える可能性があります。max_allowed_packetパラメータを変更します。 set global max_allowed_packet = 4*1024*1024;
show global variables like '%max_allowed_packet%';
mysql> show global variables like '%max_allowed_packet%';+------------------------+---------+| Variable_name | Value |+------------------------+---------+| max_allowed_packet | 4194304 |+------------------------+---------+1 row in set (0.00 sec)
connect_timeoutはデータベースの接続時間です。connect_timeoutの設定値を超える接続リクエストは拒否されます。設定が小さすぎると、データベース接続が頻繁に切断され、処理効率に影響を与えるため、このパラメータの値は10より大きくすることをお勧めします。connect_timeoutパラメータを変更します。 set global connect_timeout = 10;
show global variables like '%connect_timeout%';
mysql> show global variables like '%connect_timeout%';+------------------------+---------+| Variable_name | Value |+------------------------+---------+| connect_timeout | 10 |+------------------------+---------+1 row in set (0.00 sec)
フィードバック