1. 查看MySQL數(shù)據(jù)庫的默認編碼
站在用戶的角度思考問題,與客戶深入溝通,找到遂平網(wǎng)站設(shè)計與遂平網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋遂平地區(qū)。
有如下兩種方式,
(1)使用status命令
mysql status;
圖1 status命令
(2)使用show variables命令
mysql show variables like 'char%';
圖2 show variables命令
如果要查看某個數(shù)據(jù)庫的編碼,在運行上面的命令前,應(yīng)先執(zhí)行use db_name;命令切換數(shù)據(jù)庫(db_name為要查看的數(shù)據(jù)庫名)。
2. 改變MySQL數(shù)據(jù)庫的默認編碼
安裝MySQL數(shù)據(jù)庫時的默認編碼是latin1,實際使用時可能要使用其他編碼。下文描述如何將默認編碼改為utf8:
首先修改MySQL的配置文件/etc/mysql/my.cnf:
在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8
修改完畢后,使用如下命令之一重啟mysql服務(wù):
service mysql restart
/etc/init.d/mysql restart
改變后,之前手工創(chuàng)建的數(shù)據(jù)庫如未顯式指定編碼,則其編碼仍是默認的latin1,可使用如下命令更改編碼:
mysql alter database db_name CHARACTER SET utf8;
參考資料:
[1]
首先,到mysql\bin
下面,利用mysqldump這個工具,執(zhí)行以下命令:
mysqldump
--u=root
-p
--default-character-set=latin1
--set-charset=utf8
--skip-opt
--result-file=c:\mytable.sql
mydb
mytable
其中:root
為數(shù)據(jù)庫登錄名,
latin1
為源表(就是想進行轉(zhuǎn)碼的表)的編碼,
utf8
為想轉(zhuǎn)換成的編碼,
c:\mytable.sql
為導(dǎo)出的數(shù)據(jù)的存放文件(臨時用),
mydb是源表所屬的數(shù)據(jù)庫(schema),mytable
就是源表名了
執(zhí)行這條命令,會提示輸入密碼,輸入正確的密碼以后,就開始導(dǎo)出數(shù)據(jù)了。等到數(shù)據(jù)全部導(dǎo)出以后,可以用ue等工具打開,這時可以看到這些數(shù)據(jù)的編碼已經(jīng)轉(zhuǎn)變了。
然后需要對這個文件進行一點點更改。在文件的最開頭有一個建表語句。類似于:
Java代碼
CREATE
TABLE
`mytable`
(
`tableid`
bigint(20)
unsigned
NOT
NULL,
`c1`
int(10)
unsigned
NOT
NULL
default
'0',
`c2`
int(10)
unsigned
NOT
NULL
default
'0',
PRIMARY
KEY
(`tableid`)
);
注意看最后的分號,缺少了一點點東西:engine=myisam
DEFAULT
CHARSET=utf8
engine
和
charset
的意義地球人都知道啊...
將這一段加進去。結(jié)果可能是這樣:
Java代碼
CREATE
TABLE
`mytable`
(
`tableid`
bigint(20)
unsigned
NOT
NULL,
`c1`
int(10)
unsigned
NOT
NULL
default
'0',
`c2`
int(10)
unsigned
NOT
NULL
default
'0',
PRIMARY
KEY
(`tableid`)
)
engine=myisam
DEFAULT
CHARSET=utf8;
其中engine
和
charset
改成期望的東西,如:innodb
gbk
等...
保存文件。(如果是用UE等工具即使文件大也不會等太久,如果用記事本打開的……恭喜你!
)
這樣就成功了一半了,剩下的工作只需要導(dǎo)入這個轉(zhuǎn)好碼的數(shù)據(jù)了。
將原來的那個表改名,一是為了備份,二是防止導(dǎo)入的時候說表已經(jīng)存在。
然后還是進入mysql\bin
下面,運行:
Java代碼
mysql
-u
root
-p
mydb
c:\mytable.sql
輸入密碼以后程序開始工作,一段時間以后,新表就出來咯...
mysql如何更改數(shù)據(jù)庫字符編碼?借助客戶端工具很容易就可以更改了,下面來看一下。
01
打開navicat客戶端工具,在左邊找到要更改的數(shù)據(jù)庫。
02
右鍵點擊這個數(shù)據(jù)庫,在菜單上點擊數(shù)據(jù)庫屬性選項。
03
在彈出的屬性窗口上,點擊默認字符集下的下拉框。
04
在彈出的下拉選項里,點擊選中要使用的字符集就行了,比如選擇常用的utf8字符集,點擊ok按鈕就行了。
1.request.setCharacterEncoding("gbk");
response.setContentType("text/html charset=GBK");
2.在安裝數(shù)據(jù)庫的地方找到my.ini并設(shè)置default-character-set=GBK有兩處
3.String URL = "jdbc:mysql://localhost:3306/test?useUnicode=truecharacterEncoding=gbk";
4.服務(wù)器默認編碼 web.xml中
查看字符集設(shè)置
mysql show variables like 'collation_%';
mysql show variables like 'character_set_%';
修改數(shù)據(jù)庫的字符集
mysqluse mydb
mysqlalter database mydb character set utf-8;
創(chuàng)建數(shù)據(jù)庫指定數(shù)據(jù)庫的字符集
mysqlcreate database mydb character set utf-8;
在之前的文章里,我已經(jīng)提過如何解決JSP中亂碼問題(解決tomcat下中文亂碼問題 ),其中也詳細解說了MYSQL亂碼問題,相信通過里面的辦法,肯定都已經(jīng)解決了JSP里的亂碼問題,不過還是有些人的MYSQL亂碼問題沒有得到解決,包括我自己,所以又找了一些資料,希望這次能完全解決MYSQL數(shù)據(jù)庫的亂碼問題。
第一種方法,很精辟的總結(jié):
經(jīng)常更換虛擬主機,而各個服務(wù)商的MYSQL版本不同,當導(dǎo)入數(shù)據(jù)后,總會出現(xiàn)亂碼等無法正常顯示的問題,查了好多資料,總結(jié)出自己的一點技巧:
WINDOWS 下導(dǎo)入應(yīng)該這樣
使用MYSQL的命令
在 DOS命令下進入mysql的bin目錄下,輸入mysql -uroot -p密碼 數(shù)據(jù)庫名稱要恢復(fù)的數(shù)據(jù)庫, 例如我們要把D盤的一個名稱為test.sql的數(shù)據(jù)庫恢復(fù)到本地的test2這個數(shù)據(jù)庫,那么就這樣: mysql -uroot -p密碼 test2以前的國外主機用的Mysql是4.x系列的,感覺還比較好,都無論GBK和UTF-8都沒有亂碼,沒想到新的主機的Mysql是5.0版本的,導(dǎo)入數(shù)據(jù)后,用Php讀出來全是問號,亂碼一片,記得我以前也曾經(jīng)有過一次切換出現(xiàn)亂碼的經(jīng)驗,原因肯定是Mysql版本之間的差異問題。
只好查資料,發(fā)現(xiàn)了一個解決方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的數(shù)據(jù)庫消除亂碼,對于GBK的數(shù)據(jù)庫則使用SET NAMES GBK,代碼如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
數(shù)據(jù)庫字符集為utf-8
連接語句用這個
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
還有個方法就是,如果你自己的機器的話,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5這兩個版本中有效
第二個方法:很不錯的解說,可以試一下
mysql亂碼處理總結(jié):
(1)java中處理中文字符正常,在cmd client中顯示亂碼是字符集的問題.
(2)字段長度設(shè)置夠長,但插入中文字符時提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column錯誤是字符集的問題.
(3)亂碼問題歸根到底是字符集的問題,那就從字符集設(shè)置方面考慮,不外乎下面幾個方面:server,client,database,connection,results.
-------------------------解決辦法----------------------
(1)修改 my.ini(MySQL Server Instance Configuration 文件)
# CLIENT SECTION
[client]
port=3306
[mysql]
default-character-set=gbk
# SERVER SECTION
[mysqld]
default-character-set=gbk
(2)修改data目錄中相應(yīng)數(shù)據(jù)庫目錄下的db.opt配置文件
default-character-set=gbk
default-collation=gbk_chinese_ci
(3)數(shù)據(jù)庫連接串中指定字符集
URL=jdbc:mysql://yourIP/college?user=rootpassword=yourPassworduseUnicode=truecharacterEncoding=gbk 注:在mysql4.1.0版 要加useUnicode=truecharacterEncoding=gbk 如果是5.0版以上的,加不加都是沒有關(guān)系的!
(4)在創(chuàng)建數(shù)據(jù)庫時指定字符集
create database yourDB CHARACTER SET gbk;
(5)在dos命令上要設(shè)置
set names gbk
當前題目:怎么改mysql5.5編碼 設(shè)置mysql編碼
網(wǎng)頁路徑:http://chinadenli.net/article8/hgocop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、定制開發(fā)、網(wǎng)站收錄、網(wǎng)站導(dǎo)航、網(wǎng)站制作、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)