mysql創建資料庫utf8
檢查當前資料庫編碼。
使用語句:
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;
㈡ mysql 建資料庫用什麼字元集
mysql創建資料庫一般使用的字元集為UTF-8,但具體的要根據實際情況進行選擇。
工具:mysql5.6,Navicat Premium
步驟:
1、打開Navicat Premium,雙擊左側伺服器的樹形結構,連接到伺服器,這里以localhost為例。
㈢ php創建mysql數據表,怎麼選擇UTF8字元集
一、轉碼失敗
在數據寫入到表的過程中轉碼失敗,資料庫端也沒有進行恰當的處理,導致存放在表裡的數據亂碼。
針對這種情況,前幾篇文章介紹過客戶端發送請求到服務端。
其中任意一個編碼不一致,都會導致表裡的數據存入不正確的編碼而產生亂碼。
比如下面簡單一條語句:
set @a = "文本字元串";
insert into t1 values(@a);
變數 @a 的字元編碼是由參數 CHARACTER_SET_CLIENT 決定的,假設此時編碼為 A,也就是變數 @a 的編碼。
2. 寫入語句在發送到 MySQL 服務端之前的編碼由 CHARACTER_SET_CONNECTION 決定,假設此時編碼為 B。
3. 經過 MySQL 一系列詞法,語法解析等處理後,寫入到表 t1,表 t1 的編碼為 C。
那這里編碼 A、編碼 B、編碼 C 如果不兼容,寫入的數據就直接亂碼。
二、客戶端亂碼
表數據正常,但是客戶端展示後出現亂碼。
這一類場景,指的是從 MySQL 表裡拿數據出來返回到客戶端,MySQL 里的數據本身沒有問題。客戶端發送請求到 MySQL,表的編碼為 D,從 MySQL 拿到記錄結果傳輸到客戶端,此時記錄編碼為 E(CHARACTER_SET_RESULTS)。
那以上編碼 E 和 D 如果不兼容,檢索出來的數據就看起來亂碼了。但是由於數據本身沒有被破壞,所以換個兼容的編碼就可以獲取正確的結果。
這一類又分為以下三個不同的小類:
1)欄位編碼和表一致,客戶端是不同的編碼
比如下面例子, 表數據的編碼是 utf8mb4,而 SESSION 1 發起的連接編碼為 gbk。那由於編碼不兼容,檢索出來的數據肯定為亂碼。
2)表編碼和客戶端的編碼一致,但是記錄之間編碼存在不一致的情形
比如表編碼是 utf8mb4,應用端編碼也是 utf8mb4,但是表裡的數據可能一半編碼是 utf8mb4,另外一半是 gbk。那麼此時表的數據也是正常的,不過此時採用哪種編碼都讀不到所有完整的數據。這樣數據產生的原因很多,比如其中一種可能性就是表編碼多次變更而且每次變更不徹底導致(變更不徹底,我之前的篇章里有介紹)。舉個例子,表 t3 的編碼之前是 utf8mb4,現在是 gbk,而且兩次編碼期間都被寫入了正常的數據。
3)每個欄位的編碼不一致,導致亂碼和第二點一樣的場景。不同的是:非記錄間的編碼不統一,而是每個欄位編碼不統一。舉個例子,表 c1 欄位 a1,a2。a1 編碼 gbk,a2 編碼是 utf8mb4。那每個欄位單獨讀出來數據是完整的,但是所有欄位一起讀出來,數據總會有一部分亂碼。
三、LATIN1
還有一種情形就是以 LATIN1 的編碼存儲數據
估計大家都知道字元集 LATIN1,LATIN1 對所有字元都是單位元組流處理,遇到不能處理的位元組流,保持原樣,那麼在以上兩種存入和檢索的過程中都能保證數據一致,所以 MySQL 長期以來默認的編碼都是 LATIN1。這種情形,看起來也沒啥不對的點,數據也沒亂碼,那為什麼還有選用其他的編碼呢?原因就是對字元存儲的位元組數不一樣,比如 emoji 字元 "❤",如果用 utf8mb4 存儲,佔用 3 個位元組,那 varchar(12) 就能存放 12 個字元,但是換成 LATIN1,只能存 4 個字元。
㈣ MYSQL資料庫使用UTF-8中文編碼亂碼的解決辦法
1.用phpmyadmin創建資料庫和數據表
創建資料庫的時候,請將「整理」設置為:「utf8_general_ci」
或執行語句:
復制代碼
代碼如下:CREATE
DATABASE
`dbname`
DEFAULT
CHARACTER
SET
utf8
COLLATE
utf8_general_ci;
創建數據表的時候:如果是該欄位是存放中文的話,則需要將「整理」設置為:「utf8_general_ci」,
如果該欄位是存放英文或數字的話,默認就可以了。
相應的SQL語句,例如:
CREATE
TABLE
`test`
(
`id`
INT
NOT
NULL
,
`name`
VARCHAR(
10
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
MYISAM
;
2.用PHP讀寫資料庫
在連接資料庫之後:
復制代碼
代碼如下:$connection
=
mysql_connect($host_name,
$host_user,
$host_pass);
加入兩行:
mysql_query("set
character
set
'utf8'");//讀庫
mysql_query("set
names
'utf8'");//寫庫
就可以正常的讀寫MYSQL資料庫了。
用的appserv-win32-2.5.10做的環境,裝這個包的時候用默認的utf8編碼。
在寫資料庫連接文件時,寫成:
$conn
=
mysql_connect("$host","$user","$password");
mysql_query("SET
NAMES
'UTF8'");
mysql_select_db("$database",$conn);
然後在做頁面時,注意這句:
復制代碼
代碼如下:<meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"
/>
這樣不管輸入資料庫的中文,還是頁面顯示,就都正常了。
在DW
CS4版里,默認生成的也是utf8頁面。
同樣的,如果一開始寫資料庫連接文件時寫成:
mysql_query("SET
NAMES
'GBK'");
那頁面也要相應變成:
復制代碼
代碼如下:<meta
http-equiv="Content-Type"
content="text/html;
charset=gb2312"
/>
總結,最後主要是頁面編碼要統一就可以很方便的解決亂碼問題,特別是在mysql_query()這個set
names的設置必須和頁面及資料庫編碼統計一就可以了。
希望這兩篇關於UTF-8中文編碼亂碼的文章,能夠更好地幫助大家解決這類問題,希望大家喜歡。
㈤ 如何更改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
㈥ linux mysql 創建資料庫 並且指定編碼
1、首先在linux終端窗口處輸入mysql -u root -p 命令,然後輸入root帳戶密碼連接sql資料庫。
㈦ mysql建表的時候設置表裡面的欄位的字元集是utf-8要怎麼設置默認建好後我去mysql里看字元集都是gbk
1、建表時指定字元集utf-8:
CREATE TABLE表名
( `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`content` VARCHAR( 255 ) NOT NULL)
DEFAULT CHARACTER SET = utf8;
2、修改表的字元集為utf-8:
alter table 表名 convert to character set utf8;
(7)mysql創建資料庫utf8擴展閱讀:
1、創建資料庫時設置字元集:
CREATE DATABASE資料庫名 CHARACTER SET utf8 COLLATE utf8_general_ci;
注意後面三個單詞之間是有下劃線的對於每個選項所給定的值,前面沒有等號;在第一個選項和第二個選項之間也沒有逗號。
2、修改資料庫的字元集:
alter database資料庫名 character set utf8;
3、顯示某資料庫字元集設置:
show create database 資料庫名;
4、顯示某數據表字元集設置:
show create table 表名;
5、修改欄位:
alter table 表名 modify column '欄位名' varchar(30) character set utf8 not null;
6、添加表欄位:
alter table 表名 add column '欄位名' varchar (20) character set utf8;
㈧ 怎樣在mysql中新建表utf8格式
MYSQL創建utf-8格式的資料庫方法:
先mysql進入;
Linux代碼 ;
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE ;utf8_general_ci;
eg;
Linux代碼 www.2cto.com ;
[root@linuxtest test]# mysql -u root -p ;
Enter password;
Welcome to the MySQL monitor. Commands end with ; or g;
Your MySQL connection id is 5;
Server version: 5.1.30-community MySQL Community Server (GPL) ;
Type 'help;' or 'h' for help. Type 'c' to clear the buffer;
mysql> CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.06 sec) ;
mysql> show databases;
+--------------------+ ;
| Database | ;
+--------------------+ ;
| information_schema | ;
| cacti | ;
| mysql | ;
| test | | ;
+--------------------+ ;
5 rows in set (0.07 sec) ;
這個test庫就是utf-8格式的 。