mysql是一款常用的開源資料庫軟體,但是對於初次使用者好像並不是太友好,mysql5.x的版本中預設字符集是latin1也就是我們所知道的iso-8859-1字符集,這個字符集編碼並沒有包含漢字,所以我們在使用的時候漢字會出現亂碼情況,通過修改資料庫預設字符集即可解決。
進入mysql命令列:
mysql> show variables like '%colla%';
| variable_name | value |
| collation_connection | gbk_chinese_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
3 rows in set, 1 warning (0.00 sec)
mysql> show variables like '%char%';
| variable_name | value |
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | c:\program files\mysql\mysql server 5.7\share\charsets\ |
8 rows in set, 1 warning (0.00 sec)
可以看到現在預設的字符集是latin1
找到mysql的配置檔案,windows中的配置檔案是my.ini,我的電腦位於c:\programdata\mysql\mysql server 5.7,linux中需要修改的是my.conf檔案,具體路徑根據你的實際安裝位置,分別修改以下節點中的配置:
我使用的5.7中[client]節點的配置需要新增,其餘兩個節點[mysql]、[mysql]需要開啟注釋並修改為utf8.
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysql]
character_set_server=utf8
然後重啟mysql
net stop mysql
net start mysql
再次檢視字符集,都已經被修改為utf8字符集
mysql> show variables like '%colla%';
| variable_name | value |
| collation_connection | gbk_chinese_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
3 rows in set, 1 warning (0.00 sec)
mysql> show variables like '%char%';
| variable_name | value |
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | c:\program files\mysql\mysql server 5.7\share\charsets\ |
8 rows in set, 1 warning (0.00 sec)
為保證編碼一致性還可以在建立資料庫或者表的時候指定字符集,並在連線串後面指定連線引數:
?useunicode=true&characterencoding=utf-8&servertimezone=asia/shanghai
MySql 5 x注入語句總結
猜字段數,返回正常說明字段數大於當前值.order by num 暴使用者 資料庫 版本 and 1 2 union select 1,concat user 0x3a,database 0x3a,version 3,4,5,n 檢視許可權 and ord mid user 1,1 114 返回正常...
mysql5插入亂碼問題
mysql5插入亂碼問題 在資料庫由4.2公升級到5.1.6 comm.之後 都是latin1的預設編碼,以前的程式插入中文亂碼 以前的寫法 在source中加入charset gb2312,然後在插入前執行set names gb2312即可 在網上找了好多文章,除了上面的寫法外 就是直接更改資料...
mysql5 插入亂碼問題
在資料庫由4.2公升級到5.1.6 comm.之後 都是latin1的預設編碼,以前的程式插入中文亂碼 以前的寫法 在source中加入charset gb2312,然後在插入前執行set names gb2312即可 latin1即是iso8859 1,所以在插入之前需要將內容轉換為iso8859...