當前位置:首頁 » 操作系統 » mysql資料庫編碼方式

mysql資料庫編碼方式

發布時間: 2022-07-17 04:33:27

1. 如何更改Mysql資料庫編碼為UTF-8或者GB2312

mysql 創建 資料庫時指定編碼很重要,很多開發者都使用了默認編碼,亂碼問題可是防不勝防。制定資料庫的編碼可以很大程度上避免倒入導出帶來的亂碼問題。

網頁數據一般採用UTF8編碼,而資料庫默認為latin 。我們可以通過修改資料庫默認編碼方式為UTF8來減少資料庫創建時的設置,也能最大限度的避免因粗心造成的亂碼問題。

我們遵循的標準是,資料庫,表,欄位和頁面或文本的編碼要統一起來

我們可以通過命令查看資料庫當前編碼:

mysql> SHOW VARIABLES LIKE 'character%';

發現很多對應的都是latin1,我們的目標就是在下次使用此命令時latin1能被UTF8取代。

第一階段:

mysql設置編碼命令

[sql]view plain

  • SETcharacter_set_client=utf8;

  • SETcharacter_set_connection=utf8;

  • SETcharacter_set_database=utf8;

  • SETcharacter_set_results=utf8;

  • SETcharacter_set_server=utf8;

  • 然後mysql> SHOW VARIABLES LIKE 'character%';你可以看到全變為utf8
  • mysql> SHOW VARIABLES LIKE 'character%';

    +--------------------------+---------------------------------------------------------+

    | 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 | C:Program FilesMySQLMySQL Server 5.0sharecharsets |

    +--------------------------+---------------------------------------------------------+

    8 rows in set

2. mysql怎麼修改已有資料庫的編碼方式

方法/步驟
如果沒有配置好cmd裡面的mysql
環境變數,那就在系統高級設置那兒進行MySQL的環境變數設置。
win+R,調出「運行」,輸入cmd,回車
登錄資料庫,
查看資料庫
查看資料庫字元編碼
通過MySQL命令行修改:(編碼可選)
mysql>
set
character_set_client=utf8;
mysql>
set
character_set_connection=utf8;
mysql>
set
character_set_database=utf8;
mysql>
set
character_set_results=utf8;
mysql>
set
character_set_server=utf8;
mysql>
set
character_set_system=utf8;
mysql>
set
collation_connection=utf8;
mysql>
set
collation_database=utf8;
mysql>
set
collation_server=utf8;
當然還有:
修改資料庫的字元集mysql>use
mydb
mysql>alter
database
mydb
character
set
utf8;
8
創建資料庫指定資料庫的字元集
mysql>create
database
mydb
character
set
utf8;

3. mysql應該用什麼編碼格式儲存在資料庫里呢

mysql中一般用UTF-8編碼。

UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼。由Ken Thompson於1992年創建。現在已經標准化為RFC 3629。UTF-8用1到6個位元組編碼UNICODE字元。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。

修改資料庫編碼的命令為:

alterdatabaseapp_relationcharactersetutf8;

它相當於下面的三句指令:

SETcharacter_set_client=utf8;
SETcharacter_set_results=utf8;
SETcharacter_set_connection=utf8;

4. mysql資料庫編碼都有哪些格式

修改資料庫成utf8的.mysql>
alter
database
name
character
set
utf8;
修改表默認用utf8.mysql>
alter
table
type
character
set
utf8;
修改欄位用utf8mysql>
alter
table
type
modify
type_name
varchar(50)
character
set
utf8;

5. mysql資料庫表裡中文亂碼應該選哪種編碼

資料庫中關於字元集的種類有很多,個人建議,資料庫字元集盡量使用utf8(utf-8),以使你的數據能很順利的實現遷移,因為utf8字元集是目前最適合於實現多種不同字元集之間的轉換的字元集,盡管你在命令行工具上無法正確查看資料庫中的內容,我依然強烈建議使用utf8作為默認字元集.如果你想使用gb2312編碼,那麼建議你使用latin1作為數據表的默認字元集,這樣就能直接用中文在命令行工具中插入數據,並且可以直接顯示出來.而不要使用gb2312或者gbk等字元集,如果擔心查詢排序等問題,可以使用binary屬性約束 對編程有影響的主要是客戶端字元集和資料庫字元集(還有一個伺服器字元集,不知道干什麼用的), 資料庫中常用的操作就是保存數據和讀取數據,在這過程中,亂不亂碼和資料庫字元集貌似沒有什麼關系。我們只要保證寫入時選擇的字元集和讀取時選擇的字元集一致,即只需保證兩次操作的客戶端字元集一致即可。
在MySQL的客戶端上執行一次查詢的過程一般是,在客戶端的提示符後面輸入一條SQL語句,回車,然後終端顯示出查詢的結果。這個過程中,只有終端和三個MySQL的系統變數指定了正確的字元集,才能保證我們將一個正確的SQL語句送到伺服器,然後伺服器返回正確的結果,並且在終端正確顯示。
三個MySQL的系統變數是:
1. character_set_client,終端字元集,告訴Server客戶端提交的SQL語句的編碼格式
2. character_set_connection,連接字元集,是伺服器翻譯SQL語句時用到的編碼格式
3. character_set_results,返回的結果集的字元集,是伺服器返回結果集之前把結果集轉換成的編碼格式
在MySQL終端通過執行命令 show variables like 『char%』 可以查看這幾個變數的值。這三個變數通常都設定為同一種字元集,用命令set names [charset name]就可以修改這三個變數的值。一般來說,只要你設定了能夠表示你的數據的字元集,你查詢的結果都可以在終端正確顯示。
舉個例子,使用的表t1是utf8編碼,表中的欄位c1繼承了這個編碼,表創建如下
mysql> create table t1 ( c1 text not null ) character set utf8;
用的字元是漢字「范」,gbk編碼為B7 B6,utf8編碼為E8 8C 83
用下面的SQL語句插入數據
mysql> insert into t1 values( 『范』);
a)如果終端設置為utf8,並且執行了 set names utf8,那麼插入到資料庫中的就是「范」這個字的utf8編碼,這個過程中MySQL不需要做編碼轉換。寫入資料庫的內容可以通過執行 select hex( c1 ) from t1 得到數據的十六進制編碼來驗證。

b)如果終端設置為 utf8,並且執行了set names gbk,那麼執行完這個插入操作後,寫入的二進制數據是E9 91 BC,這是「漢字「鑼」的utf8編碼。這是因為,終端輸入的「范」用的是utf8編碼,而伺服器以為終端發送過來的內容是gbk編碼,所以在向t1表中插入的時候進行了一次gbk到utf8的轉換,結果當然是錯誤的。

c)如果終端設置為gbk,並且執行了set names gbk,那麼執行完插入操作後,寫入t1的依然是「范」這個字的utf8編碼。插入過程中,終端輸入的是「范」的gbk編碼B7 B6,伺服器被告知終端發過來的SQL語句是gbk編碼(由character_set_client指定),所以在插入數據前做了一次gbk到utf8的編碼轉換。

d)如果終端設置為gbk,並且執行了set names utf8,那麼執行完插入操作後,MySQL會報出一個數據被截斷的警告。實際上,輸入終端的是「范」這個字元的gbk編碼B7 B6,而伺服器被告知客戶端發過來的SQL語句是utf8編碼,所以在執行過程中沒有做轉碼,直到插入數據的時候,發現B7 B6不符合utf8的編碼規則,給出了警告信息,實際插入的數據是3F 3F,也就是兩個問號。

查詢的時候是同樣的道理,MySQL也是根據set names設定的字元集來對返回給客戶端的結果集做相應的編碼轉換,如果轉換的結果和終端顯示的字元集一致,就能正確顯示,如果不一致就是亂碼。

結論是,只要終端的字元集和set names指定的字元集一致就可以讓MySQL在處理過程中執行正確的轉碼並且正確地顯示。

另外,如果通過程序操作MySQL資料庫, 那麼也需要事先執行set names命令來指定程序希望輸出的字元集。比如,用程序從一個utf8編碼的資料庫向另外一個gbk編碼的資料庫進行數據遷移,在選取源資料庫數據之前,需要執行set names gbk,才能取到gbk編碼的數據。

6. 如何設置Mysql資料庫默認的字元集編碼為GBK

1、更改伺服器的編碼方式,在終端輸入以下命令:

mysqld --character-set-server=gbk --collation-server=gbk_chinese_ci;

7. 安裝mysql 怎樣設置編碼方式

檢查當前資料庫編碼。使用語句:
show variables like 『%character%』;
show variables like』%collation%』;


如果不是以上情況,需要將mysql編碼設置為utf-8。具體步驟如下:
如果安裝mysql時安裝了「MySql Sever Instance Configuration Wizard」,則只需要啟動該程序進行相應設置即可。如下面截圖中所描述,需要將默認編碼設置為utf8

如果沒有該程序,需要手動修改mysql編碼。
1、 編輯MySql的配置文件
MySql的配置文件Windows下一般在系統目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,linux下一般是 /etc/my.cnf

--在 [mysqld] 標簽下加上以下內容:
default-character-set = utf8
character_set_server = utf8
注意:如果此標簽下已經存在「default-character-set=GBK」類似的內容,只需修改即可。
--在 [mysql] 標簽下加上一行
default-character-set = utf8

--在 [mysql.server]標簽下加上一行
default-character-set = utf8

--在 [mysqld_safe]標簽下加上一行
default-character-set = utf8

--在 [client]標簽下加上一行
default-character-set = utf8

2、 重新啟動MySql服務
Windows可在服務管理器中操作,也可使用命令行:
net stop mysql 回車
net start mysql 回車
服務名可能不一定為mysql,請按自己的設置

Linux下面可是用 service mysql restart

如果出現啟動失敗,請檢查配置文件有沒有設置錯誤

3、 查看設置結果
登錄MySql命令行客戶端:打開命令行
mysql –uroot –p 回車
輸入密碼
進入mysql後 執行 :show variables like "% character %";


另外:

建立資料庫時可以使用以下命令:
create database app_relation character set utf8;
use app_relation;
source app_relation.sql;
修改資料庫編碼的命令為:
alter database app_relation character set utf8;

8. 如何查看設置mysql資料庫編碼方式

MySQL的默認編碼是Latin1,不支持中文,要支持中午需要把資料庫的默認編碼修改為gbk或者utf8。
1、需要以root用戶身份登陸才可以查看資料庫編碼方式(以root用戶身份登陸的命令為:>mysql -u root –p,之後兩次輸入root用戶的密碼),查看資料庫的編碼方式命令為:
>show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
從以上信息可知資料庫的編碼為latin1,需要修改為gbk或者是utf8;
其中,character_set_client為客戶端編碼方式;character_set_connection為建立連接使用的編碼;character_set_database資料庫的編碼;
character_set_results結果集的編碼;
character_set_server資料庫伺服器的編碼;
只要保證以上四個採用的編碼方式一樣,就不會出現亂碼問題。
另一個查看資料庫編碼的命令:
>show variables like 『collation%』;

2、linux系統下,修改MySQL資料庫默認編碼的步驟為:
ü 停止MySQL的運行
/etc/init.d/mysql start (stop) 為啟動和停止伺服器
ü MySQL主配置文件為my.cnf,一般目錄為/etc/mysql
var/lib/mysql/ 放置的是資料庫表文件夾,這里的mysql相當於windows下mysql的date文件夾
ü 當我們需要修改MySQL資料庫的默認編碼時,需要編輯my.cnf文件進行編碼修改,在linux下修改mysql的配置文件my.cnf,文件位置默認/etc/my.cnf文件

找到客戶端配置[client] 在下面添加
default-character-set=utf8 默認字元集為utf8
在找到[mysqld] 添加
default-character-set=utf8 默認字元集為utf8
init_connect='SET NAMES utf8' (設定連接mysql資料庫時使用utf8編碼,以讓mysql資料庫為utf8運行)

修改好後,重新啟動mysql 即可,重新查詢資料庫編碼可發現編碼方式的改變:
>show variables like 'character%';
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

此方法用於標准mysql版本同樣有效,對於/etc/my.cnf文件,需要從mysql/support-files的文件夾cp my-large.cnf一份到/etc/my.cnf

3、windows系統下可以刪除MySQL資料庫,並重新安裝,在安裝過程中可以直接用Mysql Server Instance Config Wizard 進行設置

4、當MySQL資料庫伺服器已經有數據不適合刪除重裝時,可以個別指定資料庫的編碼方式。MySQL指定編碼的方式是非常靈活並多樣化的,可以指定表級別的編碼,行級別編碼,甚至可以指定欄位級別的編碼。
以下示例給出創建資料庫時指定編碼的兩種方式:
1)CREATE DATABASE ms_db CHARACTER SET utf8 COLLATE utf8_general_ci;
2)create database if not exists netctoss default character set utf8;
5、如果你採用的是外部接入的方式,可以在連接中確定請求的編碼格式如:jdbc:mysql://localhost:3306 /mysql?useUnicode=true&characterEncoding=utf-8(注意:不要出現任何空格,否則出錯)
6、執行腳本:指定編碼格式set names gbk(注意,不是UTF-8)可以修改
執行前:
執行後:
從執行命令前後可知,set names gbk只可以修改character_set_client、character_set_connection、 character_set_results的編碼方式,並且這種修改是窗口級別的,只針對本窗口有效,打開另外一個窗口修改無效。也可發現資料庫底層的編碼方式沒有改變,插入數據後還是以utf8編碼方式保持。

9. mysql資料庫怎麼設置編碼格式

1、 編輯MySql的配置文件
MySql的配置文件Windows下一般在系統目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf

--在 [mysqld] 標簽下加上以下內容:
default-character-set = utf8
character_set_server = utf8
注意:如果此標簽下已經存在「default-character-set=GBK」類似的內容,只需修改即可。
--在 [mysql] 標簽下加上一行
default-character-set = utf8

--在 [mysql.server]標簽下加上一行
default-character-set = utf8

--在 [mysqld_safe]標簽下加上一行
default-character-set = utf8

--在 [client]標簽下加上一行
default-character-set = utf8

2、 重新啟動MySql服務
Windows可在服務管理器中操作,也可使用命令行:
net stop mysql 回車
net start mysql 回車
服務名可能不一定為mysql,請按自己的設置

Linux下面可是用 service mysql restart

如果出現啟動失敗,請檢查配置文件有沒有設置錯誤

3、 查看設置結果
登錄MySql命令行客戶端:打開命令行
mysql –uroot –p 回車
輸入密碼
進入mysql後 執行 :show variables like "% character %";
顯示結果應該類似如下:

| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |

如果仍有編碼不是utf8的,請檢查配置文件,也可使用mysql命令設置:
set character_set_client = utf8;
set character_set_server = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set collation_connection = utf8_general_ci;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;

另外:

建立資料庫時可以使用以下命令:
create database app_relation character set utf8;
use app_relation;
source app_relation.sql;
修改資料庫編碼的命令為:
alter database app_relation character set utf8;

10. 如何改變mysql資料庫的編碼方式

1. 查看MySQL資料庫的默認編碼
有如下兩種方式,
(1)使用status命令
mysql> status;

圖1 status命令
(2)使用show variables命令
mysql> show variables like 'char%';

圖2 show variables命令
如果要查看某個資料庫的編碼,在運行上面的命令前,應先執行use db_name;命令切換資料庫(db_name為要查看的資料庫名)。

2. 改變MySQL資料庫的默認編碼
安裝MySQL資料庫時的默認編碼是latin1,實際使用時可能要使用其他編碼。下文描述如何將默認編碼改為utf8:
首先修改MySQL的配置文件/etc/mysql/my.cnf:
在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8

修改完畢後,使用如下命令之一重啟mysql服務:
service mysql restart
/etc/init.d/mysql restart
改變後,之前手工創建的資料庫如未顯式指定編碼,則其編碼仍是默認的latin1,可使用如下命令更改編碼:
mysql> alter database db_name CHARACTER SET utf8;

參考資料:
[1] http://www.2cto.com/os/201404/292378.html

熱點內容
做解壓橡皮 發布:2025-01-21 15:03:06 瀏覽:991
雙系統win訪問mac 發布:2025-01-21 14:53:52 瀏覽:485
安卓車機系統如何安裝carplay 發布:2025-01-21 14:52:24 瀏覽:590
sql操作手冊 發布:2025-01-21 14:46:08 瀏覽:312
青橙腳本 發布:2025-01-21 14:44:05 瀏覽:219
東風本田crv時尚版是什麼配置 發布:2025-01-21 14:20:04 瀏覽:219
安卓如何多開軟體每個機型不一樣 發布:2025-01-21 14:15:29 瀏覽:501
iis配置php5 發布:2025-01-21 14:08:19 瀏覽:274
凱叔講故事為什麼聯系不到伺服器 發布:2025-01-21 13:56:50 瀏覽:387
linux鏡像文件下載 發布:2025-01-21 13:34:36 瀏覽:218