您好,登錄后才能下訂單哦!
本篇內容介紹了“Redhat5下MySql遇到的亂碼問題怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
我在上安裝了redhat并安裝了mysql,并在本地通過java訪問,直接使用jdbc訪問。
后來發現當數據庫存儲漢字時存在亂碼問題,隨后在網上找資料進行解決,現在問題已經解決,來總結一下亂碼的幾個問題。
更改數據庫默認字符集編碼:
更改配置文件,這個配置文件在/etc/my.cnf,可能安裝mysql后這個文件就有了,如果沒有,請回到根目錄然后查詢cnf文件:
Java代碼
find / -iname '*.cnf' -print
拷貝 small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf其中的一個到/etc下,改名為my.cnf:
Java代碼
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
拷貝路徑根據查詢出來的結果修改。
修改my.cnf
Java代碼
vi /etc/my.cnf
在[client]下添加
Java代碼
default-character-set=gbk
在[mysqld]下添加
Java代碼
default-character-set=gbk
然后重啟mysql。
登錄mysql查詢是否生效:
Java代碼
mysql> show variables like 'collation_%';
mysql> show variables like 'character_set_%';
注意如果你設置的是UTF-8請設置utf8,而不是utf-8,否則你的mysql重啟時不能啟動。
修改數據庫字符集后再修改數據庫的字符集:
Java代碼
mysql>use mydb
mysql>alter database mydb character set gbk;
建議是在創建數據庫時就指定字符集
Java代碼
mysql>create database mydb character set gbk;
除了使用命令來修改數據的字符集,也可以修改其配置文件
修改 /var/lib/mysql/mydb/db.opt
Java代碼
default-character-set=latin1
default-collation=latin1_swedish_ci
為
Java代碼
default-character-set=gbk
default-collation=gbk_general_ci
重起MySQL
建表時注意:
除了修改mysql和其數據庫的字符集外,要注意建表時你可能用的是導出的SQL語句,這些語句中可能包含了建表的字符集,一定要修改或刪除這些語句:
Sql代碼
CREATE TABLE `NewTable` (
`id` int(11) NOT NULL ,
`name` varchar(50) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL ,
`age` int(100) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
DEFAULT CHARACTER SET=gbk COLLATE=gbk_chinese_ci
CHECKSUM=0
ROW_FORMAT=DYNAMIC
DELAY_KEY_WRITE=0
;
連接方面:
如果數據庫配置正確,那么使用管理工具如Navicat for MySQL時就不會有問題了,但是在程序中難免還是有問題。
除了對于數據庫方面的注意外,在連接數據庫要注意指定連接的字符集
Java代碼
jdbc:mysql://192.168.154.128:3306/t2?useUnicode=true&characterEncoding=gbk
程序方面:
可是就算到這里仍然可能是亂碼,但是沒有那么嚴重了,這就要你在代碼中進行轉換了。
Java代碼
String newStr = new String(s.getBytes("ISO-8859-1"),"GBK");
“Redhat5下MySql遇到的亂碼問題怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。