最近客戶遇到問題,資料庫總是忽然少了好幾筆資料

檢查程式後也沒發現不對的地方

之後看了Debug log 發現跳出got a packet bigger than 'max_allowed_packet'訊息

拜了一下大神才發現原來是寫入資料時產生的錯誤

當匯入的資料超過 max_allowed_packet 上限就會跳出此錯誤訊息

這裡教學該怎麼改 max_allowed_packet 上限值

 

在MariaDB黑視窗模式下輸入 mysql -u root -p

輸入密碼後 再輸入 show variables like 'max%';

會跳出以下資訊

+----------------------------+----------------------+
| Variable_name | Value |
+----------------------------+----------------------+
| max_allowed_packet | 1024 |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| max_connect_errors | 10 |
| max_connections | 151 |
| max_delayed_threads | 20 |
| max_error_count | 64 |
| max_heap_table_size | 16777216 |
| max_insert_delayed_threads | 20 |
| max_join_size | 18446744073709551615 |
| max_length_for_sort_data | 1024 |
| max_long_data_size | 1048576 |
| max_prepared_stmt_count | 16382 |
| max_relay_log_size | 0 |
| max_seeks_for_key | 4294967295 |
| max_sort_length | 1024 |
| max_sp_recursion_depth | 0 |
| max_tmp_tables | 32 |

我們會看到max_allowed_packet預設值才1KB而已

下以下語法增加上限

set global max_allowed_packet = 2*1024*1024*5;

離開重新登入後發現值就改變囉

+----------------------------+----------------------+
| Variable_name | Value |
+----------------------------+----------------------+
| max_allowed_packet | 1048576 |


arrow
arrow
    全站熱搜

    力寶 發表在 痞客邦 留言(0) 人氣()