1. 程式人生 > >資料庫報錯com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'ua' at row 1

資料庫報錯com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'ua' at row 1

記一次報錯記錄,成長路上的點滴

明明使用瀏覽器或者微信開發工具除錯介面沒有問題,但是在真機測試時候就出問題了。(((¬_¬))

500伺服器內部錯誤,要死的節奏啊

登陸tomcat伺服器

使用命令tail -f /usr/local/tomcat/logs/catalina.out

檢視實時日誌輸出記錄

Sql: insert into `log_action`(`args`, `post_data`, `response_data`, `ip`, `ua`, `add_time`, `url`) values(?, ?, ?, ?, ?, ?, ?)

2018-11-01 11:16:36
[ERROR]-[Thread: http-nio-8080-exec-62]-[com.jfinal.core.ActionHandler.handle()]: xxx
com.jfinal.plugin.activerecord.ActiveRecordException: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'ua' at row 1

報錯是日誌表中的ua太小,資料存不下,但是我設定成了我自以為了最大值了啊varchar(255),

好吧!還是太無知了。

根據網上資料顯示MySQL VARCHAR欄位最大長度到底是多少

除了text和blob等大欄位外,其餘瞭如int,char,varchar這些欄位最大儲存長度不能超過65535位元組,

一般我們表使用utf8編碼,按照一個字元最大佔用三位元組算,最大可存放21845個字元。

所以vachar最少可儲存21845個字元。,定義時候可以varchar(21845)

255不是最大儲存長度啊~

動手改改資料庫欄位長度吧,可能windows不會出現這個情況,好像varchar(這個括號裡的數字可有可無)

搞定,問題修復