關於linux查看mysql字符集的信息

本文目錄一覽:

linux下rpm安裝mysql,如何修改默認字符集為utf8

如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf中;

不存在啟動不了的情況啊,如有啟動不了,仔細查看你的my.cnf文件,是不是哪裡配置需要修改,然後查看一下mysql啟動腳本/etc/rc.d/init.d/mysql。最重要的結合你mysql的錯誤日誌去分析。

設置默認utf-8

在文件my.cnf中加上如下配置:

[mysqld]

init_connect = ‘SET NAMESutf8’

character-set-server = utf8

collation-server =utf8_general_ci

針對第三點:

在創建資料庫完成後,最好查看下你資料庫的字符集是什麼?用show create database test;命令可以看到。必須保證你資料庫的編碼格式是utf-8的,這樣才可以保證插入到資料庫中的是中文格式的

linux伺服器上的mysql字符集里沒有GBK編碼

如果你是編譯安裝的話,你最好加上–with-charset=gbk

–with-extra-charsets=all

另外,如果你上面編譯的時候使用了–with-charset=gbk

,那麼你創建的資料庫默認就是gbk字符集,否則,需要你在創建資料庫時指定資料庫的字符集,

如:create

database

dbname

default

character

set

gbk;

linux 安裝mysql, 不支持GBK字符集

安裝完的MySQL的默認字符集為 latin1 ,為了要將其字符集改為用戶所需要的(比如utf8),就必須改其相關的配置文件;由於linux下MySQL的默認安裝目錄分布在不同的文件下;不像windows一樣放在同一目錄下,只需修改其中的my.ini文件,重起後就生效了;所以先來看看linux下MySQL的資料庫文件、配置文件和命令文件分別在不同的目錄 :

1、資料庫目錄,其所創建的資料庫文件都在該目錄下

/var/lib/mysql/

2、配置文件 (mysql.server命令及配置文件所在地)

/usr/share/mysql

3、相關命令(如mysql mysqladmin等)

/usr/bin

4、啟動腳本(如mysql啟動命令)

/etc/rc.d/init.d/

查看默認字符集

#mysql -u root – p

#(輸入密碼)

mysql show variables like ‘character_set%’ ;//或者是status

+————————–+—————————-+

| Variable_name | Value |

+————————–+—————————-+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+————————–+—————————-+

修改字符集 :

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伺服器,使其設置的內容生效

#/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](實現啟動,停止,重啟)

也可以通過 #service mysql [start | stop | restart](實現啟動,停止,重啟)

*********************************

另外:如果在修改字符集前,嘗試在資料庫中插入中文,那麼當修改了字符集後,在所插入中文的資料庫中(在別的資料庫中可能沒問題),

通過show variables like ‘character_set%’查詢的結果可如下:

+————————–+—————————-+

| 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/ |

+————————–+—————————-+

如上圖,character_set_database仍然會為latin1,採取的辦法是先導出該資料庫中數據,如果數據不重要,則可drop此資料庫,

然後再重新create一個資料庫。

如何在linux中安裝mysql

1.首先在liunx下安裝Mysql資料庫

~$ sudo apt-get install mysql-server #安裝Mysql伺服器端

~$ ps -aux|grep mysql #檢查Mysql伺服器進程

beili 10301 0.0 0.0 37080 3604 pts/7 S+ 5月20 0:00 mysql -u root -p

mysql 25125 0.0 0.0 4472 1704 ? Ss 09:51 0:00 /bin/sh /usr/bin/mysqld_safe

mysql 25496 0.0 3.1 859956 127084 ? Sl 09:51 0:01 /usr/sbin/mysqd –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib/mysql/plugin –log-error=/var/log/mysql/error.log –pid-file=/var/run/mysqld/mysqld.pid –socket=/var/run/mysqld/mysqld.sock –port=3306

beili 26652 0.0 0.0 13708 2180 pts/19 S+ 10:32 0:00 grep –color=auto mysql

~$ netstat -nlt|grep 3306 #檢查Mysql伺服器佔用埠

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

~$ /etc/init.d/mysql status # 通過啟動命令檢查Mysql伺服器狀態

Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)

Active: active (running) since 四 2015-05-21 09:51:13 CST; 43min ago

Process: 25126 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)

Process: 25122 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)

~$ service mysql status # 通過系統服務檢查Mysql伺服器狀態

● mysql.service – MySQL Community Server

Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)

Active: active (running) since 四 2015-05-21 09:51:13 CST; 44min ago

Process: 25126 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)

Process: 25122 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)

~$ whereis mysql # 查看mysql各個文件安裝的目錄

mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

2.訪問和配置Mysql

$ mysql -u root -p

Enter password:

mysql默認的字符集為latin1的,所以要改為utf8的。很多網上的文章執行「sudo vi /etc/mysql/my.cnf」,可是打開一看,裡面就兩行話:

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/

想來mysql的配置文件應該是在那兩個文件夾下面,於是嘗試之下打開了/etc/mysql/mysql.conf.d/ 下的mysqld.cnf文件,執行下面的命令:

~$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

[client]

default-character-set=utf8

[mysqld_safe]

socket = /var/run/mysqld/mysqld.sock

nice = 0

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci

註:棕色部分是添加的內容

重啟mysql服務,並查看字符集的設置情況:

~$ sudo /etc/init.d/mysql restart

~$ mysql -u root -p

mysql show variables like “%char%”

+————————–+—————————-+

| 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 | /usr/share/mysql/charsets/ |

原創文章,作者:OOQT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150204.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
OOQT的頭像OOQT
上一篇 2024-11-07 09:49
下一篇 2024-11-07 09:50

相關推薦

  • 如何修改mysql的埠號

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

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

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

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

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

    編程 2025-04-29
  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

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

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

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

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

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

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27

發表回復

登錄後才能評論