- 1、mysql 更改數據庫字符編碼的方法
- 2、如何更改mysql數據庫的字符集
- 3、怎樣修改mysql數據庫字符集
- 4、如何設置Mysql數據庫默認的字符集編碼為GBK
- 5、mysql中怎麼設置字符集
- 6、mysql建表的時候設置表裡面的字段的字符集是utf-8要怎麼設置?默認建好後我去mysql里看字符集都是gbk
mysql如何更改數據庫字符編碼?藉助客戶端工具很容易就可以更改了,下面來看一下。
01
打開navicat客戶端工具,在左邊找到要更改的數據庫。
02
右鍵點擊這個數據庫,在菜單上點擊數據庫屬性選項。
03
在彈出的屬性窗口上,點擊默認字符集下的下拉框。
04
在彈出的下拉選項里,點擊選中要使用的字符集就行了,比如選擇常用的utf8字符集,點擊ok按鈕就行了。
(1) 最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值,
如 default-character-set = utf8
character_set_server = utf8
修改完後,重啟mysql的服務,service mysql restart
使用 mysql SHOW VARIABLES LIKE ‘character%’;查看,發現數據庫編碼均已改成utf8
+————————–+———————————+ | 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 | D:”mysql-5.0.37″share”charsets” | +————————–+———————————+
(2) 還有一種修改mysql默認字符集的方法,就是使用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 collation_connection = utf8 ; mysql SET collation_database = utf8 ; mysql SET collation_server = utf8 ;
一般就算設置了表的mysql默認字符集為utf8並且通過UTF-8編碼發送查詢,你會發現存入數據庫的仍然是亂碼。問題就出在這個connection連接層上。解決方法是在發送查詢前執行一下下面這句:
SET NAMES ‘utf8’;
它相當於下面的三句指令:
SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8;
首先,MySQL的字符集問題主要是兩個概念,一個是Character Sets,一個是Collations,前者是字符內容
及編碼,後者是對前者進行比較操作的一些規則。這兩個參數集可以在數據庫實例、單個數據庫、表、列等四個級
別指定。
對於使用者來說,一般推薦使用utf8編碼來存儲數據。而要解決亂碼問題,不單單是MySQL數據的存儲問題,還
和用戶的程序文件的編碼方式、用戶程序和MySQL數據庫的連接方式都有關係。
首先,MySQL有默認的字符集,這個是安裝的時候確定的,在編譯MySQL的時候可以通過DEFAULT_CHARSET=
utf8和DEFAULT_COLLATION=utf8_general_ci這兩個參數(MySQL5.5版本,5.1版本用–with-charset=
utf8 –with-collation=utf8_general_ci)來指定默認的字符集為utf8,這也是最一勞永逸的辦法,這樣指定後,
客戶端連接到數據庫的編碼方式也默認是utf8了,應用程序不需要任何處理。
但是遺憾的是,很多人編譯安裝MySQL的時候沒有指定這兩個參數,大多數人更是通過二進制程序的方式安裝,那
么這時候MySQL的默認字符集是latin1。而這時候我們仍然可以指定MySQL的默認字符集,通過my.cnf文件增加
兩個參數:
1.在[mysqld]下添加
default-character-set=utf8(mysql 5.5 版本添加character-set-server=utf8)
2.在[client]下添加
default-character-set=utf8
這樣我們建數據庫建表的時候就不用特別指定utf8的字符集了。配置文件里的這種寫法解決了數據存儲和比較的問題
,但是對客戶端的連接是沒有作用的,客戶端這時候一般需要指定utf8方式連接才能避免亂碼。也就是傳說總的set
names命令。事實上,set names utf8命令對應的是服務器端以下幾個命令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = xutf8;
但這三個參數是不能寫在配置文件my.cnf里的。只能通過set命令來動態修改。我們需要的是在配置文件里寫好一勞
永逸的辦法。那麼這時候,是否有在服務端解決問題的辦法呢,可行的思路是在init_connect里設置。這個命令在每
個普通用戶連接上來的時候都會觸發執行,可以在[mysqld]部分增加以下一行設置連接字符集:
在[mysqld]下添加:
init_connect = ‘SET NAMES utf8’
總結:
1、首選在編譯安裝MySQL的時候指定兩個參數使用utf8編碼。
2、次選在配置文件my.cnf或my.ini設定兩個參數,同時設置init_connect參數。
3、第三在配置文件my.cnf或my.ini設定兩個參數,同時客戶端的連接指定set names命令。
4、在配置文件my.cnf里的client和server處加入default-character-set參數方便管理。
1、更改服務器的編碼方式,在終端輸入以下命令:
mysqld –character-set-server=gbk –collation-server=gbk_chinese_ci;
2、更改某個數據庫的編碼方式
mysql -u root -p
alter database character set gbk collate gbk_chinese_ci;
3、在創建數據庫時指定編碼:
mysql -u root -p
create database db_name character set gbk collate gbk_chinese_ci;
4、更改某個表的編碼方式
mysql -u root -p db_name
alter table table_name convert to charachter set gbk collate gbk_chinese_ci;
5、在創建表時指定編碼方式
mysql -u root -p db_name
create table table_name (….) character set gbk collate gbk_chinese_ci;
6、更改某行的編碼方式
mysql -u root -p db_name
alter table table_name modify column_name varchar(20) character set gbk collate gbk_chinese_ci;
7、在創建列時指定編碼方式:
/prepre name=”code” class=”sql”mysql -u root -p db_name
create table table_name (…, col1 varchar(20) character set gbk collate gbk_chinese_ci, …) character set utf8 collate utf8_general_ci;
方法1:通過客戶端修改表字段的默認字符集
打開SQLyog客戶端,連接數據庫如下圖所示,點擊connection 按鈕 連接數據庫
我的數據庫名稱為edu,然後我隨意找到數據庫中test2表,右鍵—–》Alter Table
如果安裝數據庫的 時候 沒有選擇字符集設置,那麼mysql數據庫默認為latin1,在箭頭部分選擇utf8字符集
方法2:用數據庫命令修改字符集
首先查看當前數據庫字符集,在命令框中執行如下命令:show variables like ‘character_set_%’;
查看字符集排序設置,執行命令:show variables like ‘collation_%’;
修改服務器級別字符集,執行命令:
1,臨時修改:SET GLOBAL character_set_server=utf8;
修改表級別,命令如下:ALTER TABLE table_name DEFAULT CHARSET utf8;
修改數據庫級別,命令如下:use edu(換成你要修改的數據庫名,在這裡我的數據庫為edu),,然後執行命令:alter database edu character set utf-8;
或者修改mysql的my.ini文件中的字符集鍵值
[mysql]
[mysqld]
重啟mysql
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;
擴展資料:
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;
原創文章,作者:WEIET,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/127002.html