小編給大家分享一下解決MySQL亂碼的問題,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
在昌樂等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計制作按需策劃設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站建設(shè),昌樂網(wǎng)站建設(shè)費(fèi)用合理。
mysql是我們項目中非常常用的數(shù)據(jù)型數(shù)據(jù)庫。但是因為我們需要在數(shù)據(jù)庫保存中文字符,所以經(jīng)常遇到數(shù)據(jù)庫亂碼情況。下面就來介紹一下如何徹底解決數(shù)據(jù)庫中文亂碼情況。
1、中文亂碼
create table user(name varchar(11)); # 創(chuàng)建user表 insert into table user("carl"); # 添加數(shù)據(jù) select * from user;
插入中文問題:
insert into user value("哈哈");
解決方法:
查看表字符編碼
mysql> show create table user \G; *************************** 1. row *************************** Table: user Create Table: CREATE TABLE `user` ( `name` varchar(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
我們可以看到表的默認(rèn)字符集是latin1.
所以我們在創(chuàng)建表的時候就需要指定表的字符集:
create table user(name varchar(11)) default charset=utf8;
這樣在Linux里面可以訪問并且可以插入與訪問這個表了。
在客戶端顯示亂碼問題:
在服務(wù)器端可以顯示中文正常,但是在客戶端可能會顯示亂碼。因為我們的服務(wù)器是UTF8
而且數(shù)據(jù)庫的編碼也存在問題:
解決方法:
查看數(shù)據(jù)庫編碼:
show variables like '%char%';
修改字符編碼:
set character_set_server=utf8; set character_set_database=utf8; show variables like '%char%';
永久修改字符集:
修改mysql配置文件/etc/my.cnf:
[mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
請注意這幾個參數(shù)配置的位置,不然可能會啟動不起來mysql服務(wù):
看完了這篇文章,相信你對解決mysql亂碼的問題有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!