檢查當(dāng)前數(shù)據(jù)庫編碼。
我們提供的服務(wù)有:成都網(wǎng)站制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、青縣ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的青縣網(wǎng)站制作公司
使用語句:
show variables like ‘%character%’;
show variables like’%collation%’;
如果不是以上情況,需要將mysql編碼設(shè)置為utf-8。具體步驟如下:
如果安裝mysql時安裝了“MySql Sever Instance Configuration Wizard”,則只需要啟動該程序進(jìn)行相應(yīng)設(shè)置即可。如下面截圖中所描述,需要將默認(rèn)編碼設(shè)置為utf8
如果沒有該程序,需要手動修改mysql編碼。
1、 編輯MySql的配置文件
MySql的配置文件Windows下一般在系統(tǒng)目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是 /etc/my.cnf
--在 [mysqld] 標(biāo)簽下加上以下內(nèi)容:
default-character-set = utf8
character_set_server = utf8
注意:如果此標(biāo)簽下已經(jīng)存在“default-character-set=GBK”類似的內(nèi)容,只需修改即可。
--在 [mysql] 標(biāo)簽下加上一行
default-character-set = utf8
--在 [mysql.server]標(biāo)簽下加上一行
default-character-set = utf8
--在 [mysqld_safe]標(biāo)簽下加上一行
default-character-set = utf8
--在 [client]標(biāo)簽下加上一行
default-character-set = utf8
2、 重新啟動MySql服務(wù)
Windows可在服務(wù)管理器中操作,也可使用命令行:
net stop mysql 回車
net start mysql 回車
服務(wù)名可能不一定為mysql,請按自己的設(shè)置
Linux下面可是用 service mysql restart
如果出現(xiàn)啟動失敗,請檢查配置文件有沒有設(shè)置錯誤
3、 查看設(shè)置結(jié)果
登錄MySql命令行客戶端:打開命令行
mysql –uroot –p 回車
輸入密碼
進(jìn)入mysql后 執(zhí)行 :show variables like "% character %";
另外:
建立數(shù)據(jù)庫時可以使用以下命令:
create database app_relation character set utf8;
use app_relation;
source app_relation.sql;
修改數(shù)據(jù)庫編碼的命令為:
alter database app_relation character set utf8;
在Unix下,可以編輯my.cnf文件進(jìn)行編碼修改,Windows下可以直接用Mysql Server Instance Config Wizard 進(jìn)行設(shè)置。
在linux下修改3個 my.cnf 中 /etc/mysql/my.cnf 文件
找到[client] 在下面添加
default-character-set=utf8 默認(rèn)字符集為utf8
再找到[mysqld] 添加
default-character-set=utf8 默認(rèn)字符集為utf8
init_connect='SET NAMES utf8' (設(shè)定連接mysql數(shù)據(jù)庫時使用utf8編碼,以讓mysql數(shù)據(jù)庫為utf8運(yùn)行)
修改好后,重新啟動mysql 即可,查詢一下show variables like 'character%';
此方法用于標(biāo)準(zhǔn)mysql版本同樣有效,對于/etc/my.cnf文件,需要從mysql/support-files的文件夾復(fù)制 my-large.cnf 到 /etc/my.cnf 。
以更改為UTF-8為例,GB2312雷同。 1、關(guān)閉mysql服務(wù)(以下為命令行中執(zhí)行) view plaincopy service mysql stop 2、修改 /etc/mysql/my.cnf (默認(rèn)的安裝路徑) view plaincopy vim /etc/mysql/my.cnf 打開my.cnf后,在文件內(nèi)的[mysqld]下增加如...
方法/步驟
如果沒有配置好cmd里面的mysql
環(huán)境變量,那就在系統(tǒng)高級設(shè)置那兒進(jìn)行MySQL的環(huán)境變量設(shè)置。
win+R,調(diào)出“運(yùn)行”,輸入cmd,回車
登錄數(shù)據(jù)庫,
查看數(shù)據(jù)庫
查看數(shù)據(jù)庫字符編碼
通過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
character_set_system=utf8;
mysql
set
collation_connection=utf8;
mysql
set
collation_database=utf8;
mysql
set
collation_server=utf8;
當(dāng)然還有:
修改數(shù)據(jù)庫的字符集mysqluse
mydb
mysqlalter
database
mydb
character
set
utf8;
8
創(chuàng)建數(shù)據(jù)庫指定數(shù)據(jù)庫的字符集
mysqlcreate
database
mydb
character
set
utf8;
可直接進(jìn)入 mysql 進(jìn)行更改,具體如下:
1.查找/etc目錄下是否有my.cnf文件;
#ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)
2.如果沒有就要從/usr/share/mysql,拷貝一個到/etc 下,在/usr/share/mysql目錄下有五個后綴為.cnf的文件,分別是 my-huge.cnf my-innodb-heavy-4G.cnf my-large.cnf my-medium.cnf my-small.cnf ;從中隨便拷貝一個到/etc目錄下并將其改為my.cnf文件,我選擇的是my-medium.cnf :
#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
3.修改my.cnf文件,在該文件中的三個地方加上 default-character-set=utf8([client] [mysqld] [mysql])
#vi /etc/my.cnf
修改如下:(紅色為添加部分)
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-character-set=utf8
init_connect='SET NAMES utf8' //此行可不加
[mysql]
no-auto-rehash
default-character-set=utf8
保存退出;
4.重起MySQL服務(wù)器,使其設(shè)置的內(nèi)容生效
#/etc/init.d/mysql restart
5. 重新登入mysql;
# mysql -u root - p
#(輸入密碼)
mysql show variables like 'character_set%' ;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |(都生成了utf8,成功了 哈哈哈)
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql啟動和停止 操作 :
可以通過 #/etc/init.d/mysql [start | stop | restart](實(shí)現(xiàn)啟動,停止,重啟)
也可以通過 #service mysql [start | stop | restart](實(shí)現(xiàn)啟動,停止,重啟)
*********************************
另外:如果在修改字符集前,嘗試在數(shù)據(jù)庫中插入中文,那么當(dāng)修改了字符集后,在你所插入中文的數(shù)據(jù)庫中(在別的數(shù)據(jù)庫中可能沒問題),
通過show variables like 'character_set%'查詢的結(jié)果可如下:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
1. 查看MySQL數(shù)據(jù)庫的默認(rèn)編碼
有如下兩種方式,
(1)使用status命令
mysql status;
圖1 status命令
(2)使用show variables命令
mysql show variables like 'char%';
圖2 show variables命令
如果要查看某個數(shù)據(jù)庫的編碼,在運(yùn)行上面的命令前,應(yīng)先執(zhí)行use db_name;命令切換數(shù)據(jù)庫(db_name為要查看的數(shù)據(jù)庫名)。
2. 改變MySQL數(shù)據(jù)庫的默認(rèn)編碼
安裝MySQL數(shù)據(jù)庫時的默認(rèn)編碼是latin1,實(shí)際使用時可能要使用其他編碼。下文描述如何將默認(rèn)編碼改為utf8:
首先修改MySQL的配置文件/etc/mysql/my.cnf:
在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8
修改完畢后,使用如下命令之一重啟mysql服務(wù):
service mysql restart
/etc/init.d/mysql restart
改變后,之前手工創(chuàng)建的數(shù)據(jù)庫如未顯式指定編碼,則其編碼仍是默認(rèn)的latin1,可使用如下命令更改編碼:
mysql alter database db_name CHARACTER SET utf8;
參考資料:
[1]