MySQL字符集設(shè)置—MySQL數(shù)據(jù)庫亂碼問題 需要修改my.ini( my.cnf) [client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = false character_set_server = utf8mb4 collation_server = utf8mb4_bin init_connect='set names utf8mb4' [mysqldump] character_set_client=utf8mb4 [mysql] default-character-set=utf8mb4 查看是否修改成功的方法: Mysql執(zhí)行: show variables like 'version'; show variables like '%character%'; show variables like 'collation%'; 結(jié)果如下圖 大家觀察看,charater_set_system還是utf8,show variables 看下,但是它應(yīng)是個(gè)只讀變量。這個(gè)是系統(tǒng)的字符集,修改不了。所以,這個(gè)值不可配置,是硬編碼的,和OS是緊密在一起的,不需要關(guān)注。 查看庫的字符集 語法:show database status from 庫名 like 表名; mysql> show create database shiyan\G*************************** 1. row *************************** Database: shiyanCreate Database: CREATE DATABASE `shiyan` /*!40100 DEFAULT CHARACTER SET gbk */1 row in set (0.00 sec) 4.查看表的字符集 語法:show table status from 庫名 like 表名; mysql> show table status from class_7 like 'test_info'; ![]() 5.查看表中所有列的字符集 語法:show full columns from 表名; mysql> show full columns from test_info; 關(guān)于mysql init_connect的幾個(gè)要點(diǎn)總結(jié)init_connect的作用 init_connect通常用于:當(dāng)一個(gè)連接進(jìn)來時(shí),做一些操作,比如設(shè)置autocommit為0,比如記錄當(dāng)前連接的ip來源和用戶等信息到一個(gè)新表里,當(dāng)做登陸日志信息 1.設(shè)定字符集: init_connect='set autocommit=0; set names gbk;' 使用init_connect的注意點(diǎn) 1 只有超級(jí)賬戶才可以設(shè)置(super_priv權(quán)限) 2 超級(jí)賬戶無視init_connect設(shè)置(即init_connect的設(shè)置對(duì)來自超級(jí)賬戶的連接不生效) 在我們創(chuàng)建mysql數(shù)據(jù)庫的時(shí)候我們經(jīng)常會(huì)用到這句SQL:CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci。 那么這句sql的每一部分分別代表著什么?又有什么意義?在看了網(wǎng)上很多資料后想總結(jié)下。 我們將這句sql劃分為三段:CREATE DATABASE `test` , DEFAULT CHARACTER SET utf8, COLLATE utf8_general_ci。 CREATE DATABASE `test` : 代表的是創(chuàng)建數(shù)據(jù)庫 test。 DEFAULT CHARACTER SET utf8 : 代表的是將該庫的默認(rèn)編碼格式設(shè)置為utf8格式。 COLLATE utf8_general_ci : 代表的是數(shù)據(jù)庫校對(duì)規(guī)則,utf8_bin將字符串中的每一個(gè)字符用二進(jìn)制數(shù)據(jù)存儲(chǔ),區(qū)分大小寫。utf8_genera_ci不區(qū)分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。utf8_general_cs區(qū)分大小寫,cs為case sensitive的縮寫,即大小寫敏感。 |
|