本文目錄一覽:
- 1、mysql 更改資料庫的編碼
- 2、如何解決MySQL表編碼轉換問題
- 3、怎樣更改MySQL資料庫編碼為UTF
- 4、如何對mysql中的字元進行編碼轉換
- 5、如何更改MySQL資料庫編碼為UTF-8或者GB2312?
- 6、mysql資料庫怎麼改它的字符集編碼???
mysql 更改資料庫的編碼
mysql支持中文欄位的。我的mysql就是gb2312的編碼方式,上面的建表語句能建表。。最簡單的方式就是修改配置文件,先關閉mysql的服務。打開mysql的安裝目錄。裡面有個my.ini的。打開它。。將下面的那個charater-set設置為gb2312default-character-set=gb2312還有default-character-set=gb2312修改好這兩個設置後。啟動服務。搞掂、、、我也是怎麼設來的!!
如何解決MySQL表編碼轉換問題
step
1.將原來的gbk編碼的資料庫導出為utf8編碼的(採用了gzip壓縮)
#
/usr/local/mysql/bin/mysqldump
-uroot
-proot
–compatible=mysql40
–default-character-set=utf8
–extended-insert
–force
–add-locks
–add-drop-table
discuz
|
/usr/bin/gzip
-9
/home/ftp/backup/bak_1227.sql.gz
這裡起主要作用的就是紅色標出來的這兩個選項了。
step
2.將網上的備份資料庫文件下載到本地,解壓
#
gunzip
bak_1227.sql.gz
導入到本地測試庫wwwtest(手動創建的時候選的utf8_general_ci編碼)中
#
/usr/local/mysql/bin/mysql
-uroot
-proot
wwwtest
/home/ftp/backup/bak_1227.sql
打開phpmyadmin查看一下資料庫顯示,資料庫和表編碼類型都是utf8_general_ci了,OK,大功告成。
————————————————————————————
這裡需要注意的問題,導出時的文件編碼,由於要導入到utf8編碼的資料庫中,並且導成utf8編碼,所以添加參數–default-character-set=utf8,這樣的話導出來的資料庫備份文件就是utf8格式的文件了.還有另一個參數–compatible=mysql40,這個參數帶上後就不會把原資料庫中的編碼設置導出來,比如我要導出的資料庫是gbk編碼的,如果不加–compatible=mysql40這個參數,那導出來的文件中創建表的語句中就會帶有DEFAULT
CHARSET=gbk,如果這樣的話導入數據時,即使資料庫是utf8編碼的,導入後表的編碼也會變成gbk.所以要加–compatible=mysql40這條參數,這樣就不會在資料庫備份文件中帶有DEFAULT
CHARSET=gbk,這樣就可以導入到utf8編碼的資料庫中,而且導入的表也使用的是當前資料庫的編碼
怎樣更改MySQL資料庫編碼為UTF
如果沒有配置好cmd裡面的mysql 環境變數,那就在系統高級設置那兒進行MySQL的環境變數設置。
win+R,調出「運行」,輸入cmd,回車
登錄資料庫,
查看資料庫
查看資料庫字元編碼
通過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;
當然還有:
修改資料庫的字符集mysqluse mydb
mysqlalter database mydb character set utf8;
創建資料庫指定資料庫的字符集
mysqlcreate database mydb character set utf8;
如何對mysql中的字元進行編碼轉換
首先,到mysql\bin
下面,利用mysqldump這個工具,執行以下命令:
mysqldump
–u=root
-p
–default-character-set=latin1
–set-charset=utf8
–skip-opt
–result-file=c:\mytable.sql
mydb
mytable
其中:root
為資料庫登錄名,
latin1
為源表(就是想進行轉碼的表)的編碼,
utf8
為想轉換成的編碼,
c:\mytable.sql
為導出的數據的存放文件(臨時用),
mydb是源表所屬的資料庫(schema),mytable
就是源表名了
執行這條命令,會提示輸入密碼,輸入正確的密碼以後,就開始導出數據了。等到數據全部導出以後,可以用ue等工具打開,這時可以看到這些數據的編碼已經轉變了。
然後需要對這個文件進行一點點更改。在文件的最開頭有一個建表語句。類似於:
Java代碼
CREATE
TABLE
`mytable`
(
`tableid`
bigint(20)
unsigned
NOT
NULL,
`c1`
int(10)
unsigned
NOT
NULL
default
‘0’,
`c2`
int(10)
unsigned
NOT
NULL
default
‘0’,
PRIMARY
KEY
(`tableid`)
);
注意看最後的分號,缺少了一點點東西:engine=myisam
DEFAULT
CHARSET=utf8
engine
和
charset
的意義地球人都知道啊…
將這一段加進去。結果可能是這樣:
Java代碼
CREATE
TABLE
`mytable`
(
`tableid`
bigint(20)
unsigned
NOT
NULL,
`c1`
int(10)
unsigned
NOT
NULL
default
‘0’,
`c2`
int(10)
unsigned
NOT
NULL
default
‘0’,
PRIMARY
KEY
(`tableid`)
)
engine=myisam
DEFAULT
CHARSET=utf8;
其中engine
和
charset
改成期望的東西,如:innodb
gbk
等…
保存文件。(如果是用UE等工具即使文件大也不會等太久,如果用記事本打開的……恭喜你!
)
這樣就成功了一半了,剩下的工作只需要導入這個轉好碼的數據了。
將原來的那個表改名,一是為了備份,二是防止導入的時候說表已經存在。
然後還是進入mysql\bin
下面,運行:
Java代碼
mysql
-u
root
-p
mydb
c:\mytable.sql
輸入密碼以後程序開始工作,一段時間以後,新表就出來咯…
如何更改MySQL資料庫編碼為UTF-8或者GB2312?
mysql 創建 資料庫時指定編碼很重要,很多開發者都使用了默認編碼,亂碼問題可是防不勝防。制定資料庫的編碼可以很大程度上避免倒入導出帶來的亂碼問題。
網頁數據一般採用UTF8編碼,而資料庫默認為latin 。我們可以通過修改資料庫默認編碼方式為UTF8來減少資料庫創建時的設置,也能最大限度的避免因粗心造成的亂碼問題。
我們遵循的標準是,資料庫,表,欄位和頁面或文本的編碼要統一起來
我們可以通過命令查看資料庫當前編碼:
mysql SHOW VARIABLES LIKE ‘character%’;
發現很多對應的都是 latin1,我們的目標就是在下次使用此命令時latin1能被UTF8取代。
第一階段:
mysql設置編碼命令
[sql] view plain copy
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
然後 mysql SHOW VARIABLES LIKE ‘character%’; 你可以看到全變為 utf8
。
但是,這只是一種假象
此種方式只在當前狀態下有效,當重啟資料庫服務後失效。
所以如果想要不出現亂碼只有修改my.ini文件,
從my.ini下手(標籤下沒有的添加,有的修改)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
以上3個section都要加default-character-set=utf8,平時我們可能只加了mysqld一項。
然後重啟mysql,執行
mysql SHOW VARIABLES LIKE ‘character%’;
確保所有的Value項都是utf8即可。
但是可惡的事情又來了,
|character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8
注意 該配置| character_set_server | latin1 無法設置成UTF8 交互時候仍然會出現亂碼。
第二階段:找到下面這東東
X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
重新啟動設置,將默認編碼設置為utf8.這樣就能達到我們所要的效果了。
mysql SHOW VARIABLES LIKE ‘character%’;
+————————–+———————————————————+
| 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 | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+————————–+———————————————————+
8 rows in set
mysql資料庫怎麼改它的字符集編碼???
在Unix下,可以編輯my.cnf文件進行編碼修改,Windows下可以直接用Mysql Server Instance Config Wizard 進行設置。
在linux下修改3個 my.cnf 中 /etc/mysql/my.cnf 文件
找到[client] 在下面添加
default-character-set=utf8 默認字符集為utf8
再找到[mysqld] 添加
default-character-set=utf8 默認字符集為utf8
init_connect=’SET NAMES utf8′ (設定連接mysql資料庫時使用utf8編碼,以讓mysql資料庫為utf8運行)
修改好後,重新啟動mysql 即可,查詢一下show variables like ‘character%’;
此方法用於標準mysql版本同樣有效,對於/etc/my.cnf文件,需要從mysql/support-files的文件夾複製 my-large.cnf 到 /etc/my.cnf 。
原創文章,作者:RPGE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/138912.html