MySQL修改字符集

2022-08-31 07:09:08 字數 1059 閱讀 5337

問題:在終端中向mysql中寫入中文,報錯

原因:查詢了一下mysql的字符集

錯誤在於mysql-server的字符集為latin1,終端的字符集是utf8,所以寫入報錯

解決: 將mysql伺服器的字符集改為utf8 ,具體方式如下:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]段落中新增如下兩行:

character-set-server=utf8

collation-server=utf8_general_ci

重啟mysql:

service mysql restart
然後登入mysql,檢視資料庫字符集設定:

show variables like '

character%

';

顯示 

檢視字符集排序設定:

show variables like '

collation_%

';

顯示

以上就大功告成了

alert database db1 character set utf8; 

但是舊table的字符集是沒有改變的,將舊table的字符集改變為utf8

alter table tb convert to character set utf8;

注:資料無價,注意備份。

幾種方式的比較:

第一種方式只是暫時起作用,新建的庫和表是utf8的格式,但mysql重新啟動後就會失效,變成原來的字符集

第二種方式更改的是mysql伺服器的字符集,再建立的資料庫和表都是utf8的字符集,但是原來資料庫和表的字符集沒有改變

第三種方式只能將現有的資料庫和表更改為utf8,以及更改為utf8的資料庫再建立的表字符集為utf8,但mysql伺服器的字符集沒有改變,新建的database格式仍然不正確

每種方式有自己的特點,結合起來用會更好

mysql字符集修改 MySql字符集修改

問題分析 普通的字串或者表情都是佔位3個位元組,所以utf8足夠用了,但是移動端的表情符號佔位是4個位元組,普通的utf8就不夠用了,為了應對無線網際網路的機遇和挑戰 避免 emoji 表情符號帶來的問題 涉及無線相關的 mysql 資料庫建議都提前採用 utf8mb4 字符集,這必須要作為移動網際...

mysql修改字符集

1,set names charset name set names顯示客戶端傳送的sql語句中使用什麼字符集。因此,set names utf8 語句告訴伺服器將來從這個客戶端傳來的資訊採用字符集utf8 它還為伺服器傳送回客戶端的結果指定了字符集。2 連線字符集和校對 1 一些字符集和校對規則系...

mysql 修改字符集

一 修改my.ini配置檔案 mysql配置檔案 character set server utf8 設定字符集 重啟mysql資料庫服務 檢視當前資料庫字符集 show variables like character 二 修改資料庫字符集 alter database 資料庫名 characte...