修改mysql數據庫字符集問題,MySQL更改字符集

本文目錄一覽:

如何修改mysql數據庫字符集

方法/步驟

如果沒有配置好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數據庫中的字段字符集

關鍵字:字符集gbkutf8開始表w的字符集設置成了gbk,但是現在的建的表要求字符集為utf8。於是:alter

table

`w`

default

character

set

utf8;或者alter

table

tbl_name

convert

to

character

set

charset_name;但是發現其中一個字段content的字符集還是gbk。於是更改mysql數據庫表中某個字段的字符集,修改字段的定義:alter

table

`w`

modify

column

`content`

varchar(30)

character

set

utf8

not

null;

如何修改MySQL字符集

首先,MySQL的字符集問題主要是兩個概念,一個是Character Sets,一個是Collations,前者是字符內容

及編碼,後者是對前者進行比較操作的一些規則。這兩個參數集可以在數據庫實例、單個數據庫、表、列等四個級

別指定。

對於使用者來說,一般推薦使用utf8編碼來存儲數據。而要解決亂碼問題,不單單是MySQL數據的存儲問題,還

和用戶的程序文件的編碼方式、用戶程序和MySQL數據庫的連接方式都有關係。

首先,MySQL有默認的字符集,這個是安裝的時候確定的,在編譯MySQL的時候可以通過DEFAULT_CHARSET=

utf8和DEFAULT_COLLATION=utf8_general_ci這兩個參數(MySQL5.5版本,5.1版本用–with-charset=

utf8 –with-collation=utf8_general_ci)來指定默認的字符集為utf8,這也是最一勞永逸的辦法,這樣指定後,

客戶端連接到數據庫的編碼方式也默認是utf8了,應用程序不需要任何處理。

但是遺憾的是,很多人編譯安裝MySQL的時候沒有指定這兩個參數,大多數人更是通過二進制程序的方式安裝,那

么這時候MySQL的默認字符集是latin1。而這時候我們仍然可以指定MySQL的默認字符集,通過my.cnf文件增加

兩個參數:

1.在[mysqld]下添加

default-character-set=utf8(mysql 5.5 版本添加character-set-server=utf8)

2.在[client]下添加

default-character-set=utf8

這樣我們建數據庫建表的時候就不用特別指定utf8的字符集了。配置文件里的這種寫法解決了數據存儲和比較的問題

,但是對客戶端的連接是沒有作用的,客戶端這時候一般需要指定utf8方式連接才能避免亂碼。也就是傳說總的set

names命令。事實上,set names utf8命令對應的是服務器端以下幾個命令:

SET character_set_client = utf8;

SET character_set_results = utf8;

SET character_set_connection = xutf8;

但這三個參數是不能寫在配置文件my.cnf里的。只能通過set命令來動態修改。我們需要的是在配置文件里寫好一勞

永逸的辦法。那麼這時候,是否有在服務端解決問題的辦法呢,可行的思路是在init_connect里設置。這個命令在每

個普通用戶連接上來的時候都會觸發執行,可以在[mysqld]部分增加以下一行設置連接字符集:

在[mysqld]下添加:

init_connect = ‘SET NAMES utf8’

總結:

1、首選在編譯安裝MySQL的時候指定兩個參數使用utf8編碼。

2、次選在配置文件my.cnf或my.ini設定兩個參數,同時設置init_connect參數。

3、第三在配置文件my.cnf或my.ini設定兩個參數,同時客戶端的連接指定set names命令。

4、在配置文件my.cnf里的client和server處加入default-character-set參數方便管理。

複製代碼

1 ——-客戶端—-

2 [client]

3 no-beep

4

5 # pipe

6 # socket=mysql

7 port=3306

8

9 [mysql]

10

11 default-character-set=gb2312

12

13 —–服務器—-

14

15 # The default character set that will be used when a new schema or table is

16 # created and no character set is defined

17 character-set-server=gb2312

複製代碼

1,service mysqld stop,停用mysql。

2.cp /etc/my.cnf /etc/my.cnf.bak,修改前做備份,這是個好習慣。

修改my.cnf或my.ini(只有修改配置文件,並重啟服務器,才能永久生效)

vi /etc/my.cnf

在[client]下添加,client為控制客戶端的,沒試過,沒有的可以不需要加。

default-character-set=utf8

在[mysqld]下添加,mysqld為控制服務器端的,改過了,OK。

default-character-set=utf8

3.service mysqld restart,重啟。

4.show variables like ‘%char%’;查看。

以下為網絡轉載,比較全。

//////////////////////////////////////////

查看mysql字符集MySQL 亂碼的根源是的 MySQL 字符

ubuntu 10.04 mySql 啟動,停止,重啟

啟動:sudo /etc/init.d/mysql start

停止:sudo /etc/init.d/mysql stop

重啟:sudo /etc/init.d/mysql restart

注意:從windows下拷貝過來的文件在linux下不能直接加入數據庫,因為字符集不一樣,這樣打開即使顯示是中文也不能在數據庫中顯示,要把文件拷貝進linux的另一個文件中轉換字符才可以。

MySQL 亂碼的根源是的 MySQL 字符集設置不當的問題,本文匯總了有關查看 MySQL 字符集的命令。包括查看 MySQL 數據庫服務器字符集、查看 MySQL 數據庫字符集,以及數據表和字段的字符集、當前安裝的 MySQL 所支持的字符集等。

一、查看 MySQL 數據庫服務器和數據庫字符集。

mysql show variables like ‘%char%’;

二、查看 MySQL 數據表(table) 的字符集。

mysql show table status from sqlstudy_db like ‘%countries%’;

三、查看 MySQL 數據列(column)的字符集。

mysql show full columns from countries;

四、查看當前安裝的 MySQL 所支持的字符集。

mysql show charset;

mysql show char set;

以上查看 MySQL 字符集命令,適用於 Windows Linux。

1.查找MySQL的cnf文件的位置

find / -iname ‘*.cnf’ -print

/usr/share/mysql/my-innodb-heavy-4G.cnf

/usr/share/mysql/my-large.cnf

/usr/share/mysql/my-small.cnf

/usr/share/mysql/my-medium.cnf

/usr/share/mysql/my-huge.cnf

/usr/share/texmf/web2c/texmf.cnf

/usr/share/texmf/web2c/mktex.cnf

/usr/share/texmf/web2c/fmtutil.cnf

/usr/share/texmf/tex/xmltex/xmltexfmtutil.cnf

/usr/share/texmf/tex/jadetex/jadefmtutil.cnf

/usr/share/doc/MySQL-server-community-5.1.22/my-innodb-heavy-4G.cnf

/usr/share/doc/MySQL-server-community-5.1.22/my-large.cnf

/usr/share/doc/MySQL-server-community-5.1.22/my-small.cnf

/usr/share/doc/MySQL-server-community-5.1.22/my-medium.cnf

/usr/share/doc/MySQL-server-community-5.1.22/my-huge.cnf

2. 拷貝 small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf其中的一個到/etc下,命名為my.cnf

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

3. 修改my.cnf 或my.ini(5.6版本)

vi /etc/my.cnf

在[client]下添加

default-character-set=utf8

在[mysqld]下添加

default-character-set=utf8

4.重新啟動MySQL

[root@bogon ~]# /etc/rc.d/init.d/mysql restart

Shutting down MySQL [ 確定 ]

Starting MySQL. [ 確定 ]

[root@bogon ~]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.1.22-rc-community-log MySQL Community Edition (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

其他的一些設置方法:

通過配置文件修改:

修改/var/lib/mysql/mydb/db.opt

default-character-set=latin1

default-collation=latin1_swedish_ci

default-character-set=utf8

default-collation=utf8_general_ci

重起MySQL:

[root@bogon ~]# /etc/rc.d/init.d/mysql restart

如何更改mysql數據庫的字符集

(1) 最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值,

如 default-character-set = utf8

character_set_server = utf8

修改完後,重啟mysql的服務,service mysql restart

使用 mysql SHOW VARIABLES LIKE ‘character%’;查看,發現數據庫編碼均已改成utf8

+————————–+———————————+ | 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 | D:”mysql-5.0.37″share”charsets” | +————————–+———————————+

(2) 還有一種修改mysql默認字符集的方法,就是使用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 collation_connection = utf8 ; mysql SET collation_database = utf8 ; mysql SET collation_server = utf8 ;

一般就算設置了表的mysql默認字符集為utf8並且通過UTF-8編碼發送查詢,你會發現存入數據庫的仍然是亂碼。問題就出在這個connection連接層上。解決方法是在發送查詢前執行一下下面這句:

SET NAMES ‘utf8’;

它相當於下面的三句指令:

SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8;

如何修改mysql表字段的字符集

修改mysql的默認字符集是通過修改它的配置文件來實現的。一般分兩種情況:

windows平台

windows下的mysql配置文件是my.ini,一般在c:windowsmy.ini或者c:winntmy.ini可以直接在這個文件裡面加上

default-character-set=gbk

#或gb2312,big5,utf8

然後重新啟動mysql

service

mysql

restart

/etc/init.d/mysql

restart

或用其他方法重新啟動,就生效了。

unix平台

linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:

find

/

-iname

my.cnf

在這個文件裡面加上

default-character-set=gbk

#或gb2312,big5,utf8

然後重新啟動mysql

net

stop

mysql

net

start

mysql

就生效了。

mysql 更改數據庫字符編碼的方法

mysql如何更改數據庫字符編碼?藉助客戶端工具很容易就可以更改了,下面來看一下。

01

打開navicat客戶端工具,在左邊找到要更改的數據庫。

02

右鍵點擊這個數據庫,在菜單上點擊數據庫屬性選項。

03

在彈出的屬性窗口上,點擊默認字符集下的下拉框。

04

在彈出的下拉選項里,點擊選中要使用的字符集就行了,比如選擇常用的utf8字符集,點擊ok按鈕就行了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199093.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-04 19:14
下一篇 2024-12-04 19:14

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • 如何修改mysql的端口號

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

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示“文件中含有宏,保存將導致宏不可用”的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

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

    編程 2025-04-29
  • openeuler安裝數據庫方案

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

    編程 2025-04-29
  • Java Thread.start() 執行幾次的相關問題

    Java多線程編程作為Java開發中的重要內容,自然會有很多相關問題。在本篇文章中,我們將以Java Thread.start() 執行幾次為中心,為您介紹這方面的問題及其解決方案…

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

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

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網絡爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • NodeJS 建立TCP連接出現粘包問題

    在TCP/IP協議中,由於TCP是面向字節流的協議,發送方把需要傳輸的數據流按照MSS(Maximum Segment Size,最大報文段長度)來分割成若干個TCP分節,在接收端…

    編程 2025-04-29
  • 如何解決vuejs應用在nginx非根目錄下部署時訪問404的問題

    當我們使用Vue.js開發應用時,我們會發現將應用部署在nginx的非根目錄下時,訪問該應用時會出現404錯誤。這是因為Vue在刷新頁面或者直接訪問非根目錄的路由時,會認為服務器上…

    編程 2025-04-29

發表回復

登錄後才能評論