溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何編譯安裝mysql中的字符集

發(fā)布時(shí)間:2020-06-04 17:11:10 來(lái)源:網(wǎng)絡(luò) 閱讀:266 作者:三月 欄目:數(shù)據(jù)庫(kù)

本文主要給大家簡(jiǎn)單講講如何編譯安裝mysql中的字符集,相關(guān)專業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書(shū)籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望如何編譯安裝mysql中的字符集這篇文章可以給大家?guī)?lái)一些實(shí)際幫助。

1.編譯安裝的字符集情況

查看字符集的格式
mysql> show  create  table  sanlang  \G
*************************** 1. row ***************************
       Table: sanlang
Create Table: CREATE TABLE `sanlang` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
 
mysql>
插入數(shù)據(jù)
mysql> insert into  sanlang  values(22,"劉海笑");   
 
Query OK, 1 row affected (0.00 sec)
測(cè)試
mysql> select * from sanlang;                   
+------+-----------+
| id   | name      |
+------+-----------+
|    1 | xiaoming  |
|    2 | xiaoli    |
|    3 | tt        |
|    4 | gg        |
|   22 | testdata  |
|   22 | 劉海笑    |
+------+-----------+
6 rows in set (0.00 sec)
mysql>

更改字符集測(cè)試(更改字符集以后可以看出id為22的出現(xiàn)亂碼):

mysql> set  names  gbk ;
Query OK, 0 rows affected (0.00 sec)
 
mysql> select * from sanlang;                      
+------+----------+
| id   | name     |
+------+----------+
|    1 | xiaoming |
|    2 | xiaoli   |
|    3 | tt       |
|    4 | gg       |
|   22 | testdata |
|   22 | Ц        |
+------+----------+
6 rows in set (0.10 sec)
 
mysql>

2.mysql數(shù)據(jù)庫(kù)常見(jiàn)的字符集介紹

如何編譯安裝mysql中的字符集

3.MYSQL如何選擇合適的字符集

1.如果處理各種各樣的文字,發(fā)布到不同一眼國(guó)家地區(qū),mysql來(lái)說(shuō)UTF-8(每個(gè)漢字三個(gè)自己),如果應(yīng)用需要處理英文,僅有少量漢字utf8更好
2.如果只需要支持中文,并且數(shù)據(jù)量很大,性能要求也很高,可選GBK(訂場(chǎng),每個(gè)漢字占用雙字節(jié),英文也占雙字節(jié)),如需大量的運(yùn)算,
比較排序等,定長(zhǎng)字符集,更快,性能高
3.處理移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù),可能需要使用utf8MP4的字符集
4.老師建議:沒(méi)有特別的需求,就選擇utf8的字符集

4.查看系統(tǒng)字符集

mysql> show  character set ;
mysql> show  variables  like 'character_set%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |  #客戶端字符集
| character_set_connection | utf8                                      |#客戶端連接字符集
| character_set_database   | utf8                                      |#數(shù)據(jù)庫(kù)字符集,配置文件指定或者建表指定
| character_set_filesystem | binary                                    |#文件系統(tǒng)字符集
| character_set_results    | utf8                                      |#返回結(jié)果字符集
| character_set_server     | utf8                                      |#云服務(wù)器字符集,配置文件指定或建庫(kù)建表指定
| character_set_system     | utf8                                      |#系統(tǒng)字符集
| character_sets_dir       | /application/mysql-5.5.49/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)
mysql>

5.set names 控制客戶端的字符集

可以看出set  names只是控制了客戶端的字符集

mysql> show  variables  like 'character_set%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8                                      |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /application/mysql-5.5.49/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)
 
mysql> set  name  gbk;
mysql> show  variables  like 'character_set%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | gbk                                       |
| character_set_connection | gbk                                       |
| character_set_database   | utf8                                      |
| character_set_filesystem | binary                                    |
| character_set_results    | gbk                                       |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /application/mysql-5.5.49/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)

6.客戶端字符集統(tǒng)一

1.客戶端字符集統(tǒng)一
法①set  names  utf8
法②下面三個(gè)命令代替set  names(其實(shí)就是更改了client的字符集)
SET  character_set_client  = gbk
SET character_set_connection = gbk
SET character_set_results = gbk
法③登錄的時(shí)候指定字符集
[root@oldboy ~]# mysql -uroot -poldboy123 -S  /data/3306/mysql.sock   --default-character-set=utf8;
法④通過(guò)修改my.cnf  實(shí)現(xiàn)修改mysl客戶端的字符集,并且永久生效
[client]
default-character-set = utf8   #不需要重啟服務(wù),退出登錄就生效
備注:多實(shí)例修改客戶端 字符集要修改/etc/my.cnf

7.更改mysql服務(wù)端的字符集

 按照要求修改my.cnf參數(shù)
  [mysqld]
  default-character-set = utf8    #適合5.1以及以前的版本
  character-set-server = utf8      #適合5.5

8.創(chuàng)建庫(kù)的時(shí)候指定字符集

mysql> create  database  oldboy  CHARACTER SET  gbk  COLLATE gbk_chinese_ci;
 說(shuō)明:建表的時(shí)候指定字符集,如果不指定字符集,那么表和庫(kù)的字符一樣

9.程序也要統(tǒng)一

  程序和庫(kù)表的字符集統(tǒng)一

10.系統(tǒng)的字符集

[root@oldboy ~]# cat  /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"

11.數(shù)據(jù)庫(kù)中執(zhí)行sql語(yǔ)句的方法

a.sql語(yǔ)句在windows客戶端改成utf8沒(méi)有簽名的格式
b.導(dǎo)入數(shù)據(jù)指定字符集的格式
mysql -uroot -poldboy123 --default-character-set=utf8 <test.sql

12.更改庫(kù)字符集的思路(庫(kù)的表里面已經(jīng)有數(shù)據(jù)了)

說(shuō)明:有數(shù)據(jù)的情況下,對(duì)新數(shù)據(jù)生效,對(duì)老數(shù)據(jù)庫(kù)不生效
更改庫(kù)字符集的思想
1.數(shù)據(jù)庫(kù)不要更新,導(dǎo)出所有的數(shù)據(jù)
2.把導(dǎo)出的數(shù)據(jù)進(jìn)行字符集的替換(替換表和庫(kù))
3.修改my.cnf,更改mysql客戶端的服務(wù)端的字符集,重啟生效
4.導(dǎo)入更改過(guò)的字符集的數(shù)據(jù),包括表結(jié)構(gòu)語(yǔ)句,提供服務(wù)
5.ssh客戶端,以及程序更改為對(duì)應(yīng)的字符集

如何編譯安裝mysql中的字符集就先給大家講到這里,對(duì)于其它相關(guān)問(wèn)題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI