JSP adbc tag 連接 MySQL 數據庫中文變?

前言

我也不知道該怎么起標題了。這個標題大概就是我搜索錯誤是用到的關鍵詞
最近在寫 JSP。 昨天用到了數據庫,但是遇到了一個超級崩潰的錯誤。
我的 SQL 語句中 如果出現了中文,在數據庫中執行的時候 中文就變成了?

錯誤的樣子:
我執行這個 
select * from book where author like '%金庸%' 
在數據庫執行日志看就是 
select * from book where author like '%??%' 
這種錯誤

當時大概思路是
先查了一遍我的數據庫和表以及字段的數據類型,沒發現問題
在請求數據查詢的地方,直接寫了一條固定的 SQL 語句。發現問題是出現在這里
然后嘗試各種解決方式 無效。 偶然想到了查詢數據庫日志,嘗試,查到了日志可是沒解決問題思路
早上起來突然想到。會不會是整個 MySQL 的編碼方式于是在網上找了篇參考文章 來自CSDN 的 參考文章 查看修改mysql編碼方式

整個過程

查數據庫的執行日志
查詢數據庫實時執行 參考自 CSDN 博主 春夏秋冬又一年
1. 進入 mysql, 修改設置:

image

2. 查看 mysql 的日志文件所在位置:
image

3. 在終端 用 tail -f 命令 打開該日志文件:
tail -f /usr/local/var/mysql/日志文件名.log
如果執行不了, 可能會需要權限, 在前面添加 sudo 即可
(用 vim 打開的不是實時的, 需要手動翻頁查看)
4. 接下來,再進行 mysql 相關的查詢等操作時,便可以在終端打開的這個文件里實時看到每一步的操作了
比如:
image

在一篇文章中我發現了字符集可能導致的問題
于是檢查了一下字符集。
檢查字符集的方式
mysql> show variables like 'character%';
image.png

可以看到我的 character_set_server value 值為 latin1
問題應該是在這里 嘗試把它改為 utf8
有方法說是用
mysql> set names utf8;
我使用后無效. 于是看到網上說改配置文件,因為我是在官網下載 MySQL mac 版,我并沒有找到 配置文件, 也沒有找到 my-default.cnf
修改期間必須關閉mysql!!!
(這些內容參考子 博主 涂山千風)

  1. 我們要在/etc下新建my.cnf
    $ cd /etc $ sudo vim my.cnf
    輸入: 內容見此鏈接 (這里邊的內容目測就是 配置文件 )改character_set_server=utf8;
  2. 保存并退出
  3. 重啟mysql。


    image.png

    完美!!!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容