mysql資料庫轉換編碼,改變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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RPGE的頭像RPGE
上一篇 2024-10-04 00:21
下一篇 2024-10-04 00:21

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL資料庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28

發表回復

登錄後才能評論