新聞中心
MySQL是一個廣泛使用的關系型數據庫管理系統,被廣泛應用于各種不同類型的應用程序。在使用MySQL的過程中,很多人都遇到了一個常見的問題:無法使用GBK編碼。這篇文章將討論MySQL在Linux下不支持GBK編碼的原因以及如何解決這個問題。

巧家ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
什么是GBK編碼?
GBK編碼是一種中文編碼,其中包含了簡體中文和繁體中文字符。GBK編碼將中文字符編碼為兩個字節(jié),可以表示漢字等中文字符。由于一些歷史原因,GBK編碼不同于其他編碼,例如UTF-8和ASCII編碼。GBK編碼在中國大陸和臺灣地區(qū)被廣泛使用。
MySQL在Linux下不支持GBK編碼的原因
MySQL在Linux下默認使用UTF-8編碼。這意味著如果想使用GBK編碼,必須將MySQL配置為支持GBK編碼。然而,由于歷史原因,MySQL在Linux下不支持GBK編碼。這是因為MySQL在開發(fā)之初主要是為了支持歐洲語言設計的,因此并沒有考慮到GBK等中文編碼的需求。雖然現在MySQL已經被廣泛應用于全球不同地區(qū),但是它仍然使用歐洲編碼作為默認編碼,這導致了在Linux下無法支持GBK編碼。
如何解決MySQL在Linux下不支持GBK編碼的問題?
一種解決方法是將MySQL的默認編碼更改為GBK編碼。這樣做需要對MySQL進行重新編譯和安裝,這對一些用戶來說可能會比較困難。此外,改變MySQL默認編碼還可能會導致一些其他編碼方面的問題。
另一種解決方法是使用iconv等工具進行編碼轉換。iconv可以將MySQL支持的編碼轉換為GBK編碼。使用iconv需要一些編碼知識,因此不適合所有用戶,但是這種方法是可以解決問題的。
此外,另一種途徑是使用GBK編碼的MySQL替代品。實際上,已經有一些MySQL替代品支持GBK編碼,這些替代品的配置方法和MySQL類似,用戶可以根據自己的需要進行選擇。
結論
MySQL在Linux下不支持GBK編碼是一個常見的問題,但是我們可以采取多種方法來解決。無論使用哪種方法,必須了解MySQL在設計之初的歷史原因,這對于解決問題是非常有幫助的。對于那些需要使用GBK編碼的用戶來說,選擇支持GBK編碼的MySQL替代品可能是更好的選擇。
相關問題拓展閱讀:
- 怎樣在linux系統上安裝mysql數據庫
- linux下安裝mysql,求助大俠們
怎樣在linux系統上安裝mysql數據庫
mysql安裝前準備
在安裝mysql之前需要進行一些準備工作。首先亂嫌寬要明確Linux中是否已經安裝mysql服務,在不明確的情況下,可以執(zhí)行以下命令進行確認。
#rpm -q mysql
執(zhí)行命令后的結果如下所示,表明mysql服務沒有安裝。
#rpm -q mysql
package mysql is not installed
如果檢測到mysql服務沒有安裝,則需要準備安裝mysql服務所需要的RPM包,如下所示:下載地址:
。
MySQL-server-community-5.1.26-0.rhel4.i386.rpm
MySQL-client-community-5.1.26-0.rhel4.i386.rpm
MySQL-shared-community-5.1.26-0.rhel4.i386.rpm
MySQL-devel-community-5.1.26-0.rhel4.i386.rpm
MySQL-test-community-5.1.26-0.rhel4.i386.rpm
MySQL-community-debuginfo-5.1.26-0.rhel4.i386.rpm
mysql安裝的詳細過程
安裝mysql的方法有多種,下面就以RPM包安裝和源碼安裝兩種方式為例進行講解。
1.RPM包安裝方式
運行如下命令:
# rpm -ivh MySQL-server-community-5.1.26-0.rhel4.i386.rpm
Preparing…
1:MySQL-server
如上安裝其他的5個rpm文件,應該沒有什么問題。
2.源碼安裝方式
要使用源碼的方式對mysql數據庫進行安裝,則需要先從相關網站下載獲得相應的mysql安裝包文件(mysql-5.0.15.tar.gz),然后進行相關的安裝工作,安裝的具體步驟如下。
第1步,為“mysqld”服務增添一個登錄組和用戶名,執(zhí)行如下命令。
#groupadd mysql
#useradd -g mysql mysql
第2步,解壓mysql安裝包,執(zhí)行如下命令。
#gunzip
#cd mysql-5.0.15
第3步,進行相關的配置和編譯。
給configure分配可執(zhí)行文件,執(zhí)行如下命令。
#chmod +x configure
改變字符集為GBK,執(zhí)行如下命令。
#./configure –prefix=/usr/local/mysql –with-charset=gbk
#make
第4步,執(zhí)行如下命令進行安裝
#make install
另外,如果想安裝選項文件,使用當前存在的“support-files”文件夾作為模板,執(zhí)行如下指令。
#cp support-files/my-medium.cnf /etc/my.cnf
同時,如果需要讓mysql每次嘩亮開機時自動啟動,需要執(zhí)行如下指令。
#cp -r support-files/mysql.server /etc/init.d/mysql
#cd /etc/rc.d/init.d
#chmod +x mysql
#in/chkconfig –del mysql
#in/chkconfig –add mysql
第5步,執(zhí)行以下命令進行安裝目錄。
#cd /usr/local/mysql
第6步,將程序的所有權限授給“root”,并且把數據目錄的所有授權給可以進行“mysqld”的用戶,假設mysql的安裝目錄為“/usr/local/mysql”,執(zhí)行以下命令。
首先把文件擁有權授給“root”,執(zhí)行如下命令。
#chown -R root
然后把數據目錄擁護權授給“mysql”用戶,執(zhí)行如下命令。
#chown -R mysql var
最后把組的權限授給“mysql”組,執(zhí)行如下命令。
#chgrp -R mysql
第7步,所有的配置完成后,執(zhí)行以下命令測試并運行mysql
#/usr/local/mysql/bin/mysqld_safe –user=mysql &
#service mysql start
第8步,測試一切正常后,為了安全起見,更好更改管理員的密碼。可以運行mysqladmin,執(zhí)行如下命令。
#cd bin
#./mysqladmin -u root password ******
第9步,允許其他用戶訪問本機,執(zhí)行以下命令。
#./mysqladmin -u root -p mysql
第10步,修改mysql數據庫端口號,執(zhí)行如下命令。
#vi /etc/my.cnf
第11步,重啟應用,執(zhí)行如下命令。
#service mysql restart
以上mysql安裝方式都稍顯復雜,建議在“軟件包管理者”窗口中進行安裝。
linux下安裝mysql,求助大俠們
MySQL有兩種安裝方式:源碼包安裝和二進制包安裝。這兩種方式各有特色:二位制包安裝不需編譯,針對不伏肆悔同的平臺有經
過優(yōu)化編譯的不同的二進制文件以及包格式,安裝簡單方便;源碼包則必須先配置編譯再安裝,可以根據你所用的主機環(huán)境進行優(yōu)化,選擇更佳的配置值,安裝定制
更靈活。下面分別介紹這兩種安裝方式。
3.1 源碼包方式安裝
3.1.1 在linux系統中添加運行Mysql的用戶和組
/usr/in/groupadd mysql
/usr/in/useradd -d /var/lib/mysql -s /in/nologin -g mysql mysql
3.1.2 下載最新穩(wěn)定發(fā)行版(GA)的MySQL軟件
訪問缺正MySQL網站
下載最新穩(wěn)定發(fā)行版的MySQL源碼包。本文使用的是5.0.51版本,在linux系統下用下面的命令下載:
wget
3.1.3 解壓縮下載的源碼包
首先建立一個工作目錄( 筆者建議的目錄為/usr/local/src/mysql ) :
mkdir -p /usr/local/src/mysql
將下載的源碼包移至工作目錄:
mv mysql-5.0.51.tar.gz /usr/local/src/mysql
進入工作目錄并用tar命令解壓源碼包:
cd /usr/local/src/mysql
tar zxvf mysql-5.0.51.tar.gz
命令執(zhí)行結束后,當前工作目錄下將生成一個新的子目錄mysql-5.0.51,此目錄下即為mysql的源碼文件。
3.1.4 配置Makefile文件
進入MySQL源碼目錄:
cd mysql-5.0.51
執(zhí)行下面的命令可查看可配置選項:
./configure –help
本文使用的配置雹嫌命令格式如下:
CC=gcc CFLAGS=”-O3″ CXX=gcc CXXFLAGS=”-O3 -felide-constructors
-fno-exceptions -fno-rtti” ./configure
–prefix=/usr/local/mysql –enable-thread-safe-client –enable-assembler
–with-big-tables –with-client-ldflags=-all-static
–with-mysqld-ldflags=-all-static –with-charset=utf8
–with-collation=utf8_general_ci –with-extra-charsets=complex
配置選項說明:
CC:C編譯器的名稱(用于運行configure),本文示例為gcc
CFLAGS:C編譯器的標志(用于運行configure),本文示例為-O3,指定優(yōu)化級別為3
CXX:C++編譯器的名稱(用于運行configure),本文示例為gcc
CXXFLAGS:C++編譯器的標志(用于運行configure)
–prefix:指定安裝目錄,本文示例為/usr/local/mysql
–localstatedir:指定默認數據庫文件保存目錄,默認為安裝目錄下的var目錄
enable-thread-safe-client:編譯線程安全版的MySQL客戶端庫
–enable-assembler:使用一些字符函數的匯編版本
–with-client-ldflags:客戶端鏈接參數,本文示例為指定靜態(tài)編譯mysql客戶端
–with-mysqld-ldflags:服務器端鏈接參數,本文示例為指定靜態(tài)編譯mysql服務器
–with-big-tables:在32位平臺上支持大于4G行的表
–with-charset:指定默認字符集。mysql默認使用latin1(cp1252)字符集,可以使用此選項更改。字符集可以是big5、
cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、
hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或
win1251ukr。
–with-collation:指定默認校對規(guī)則。mysql默認使用latin1_swedish_ci校對規(guī)則,可以使用此選項更改。
–with-extra-charsets:服務器需要支持的字符集,有三種可能的值:空格間隔的一系列字符集名;complex ,包括不能動態(tài)裝載的所有字符集;all,將所有字符集包括進二進制。本文示例為complex。
注意:要想更改字符集和校對規(guī)則,要同時使用–with-charset和–with-collation選項。 校對規(guī)則必須是字符集的合法校對規(guī)則。(在mysql中使用SHOW COLLATION語句來確定每個字符集使用哪個校對規(guī)則)。
3.1.5 編譯源代碼
執(zhí)行下面的命令編譯源代碼:
make
3.1.6 安裝
執(zhí)行下面的命令安裝mysql到目標路徑:
make install
3.1.7 復制默認全局啟動參數配置文件到/etc目錄
源
碼方式安裝需要手動復制配置文件,配置模板位于源碼樹的support-files目錄,有my-all.cnf、my-medium.cnf、
my-large.cnf、my-huge.cnf四個,選擇跟你的環(huán)境相接近的一個復制到/etc目錄,并做適當修改。關于mysql配置文件的詳細信
息請參閱筆者的其它文章或是mysql官方文檔。
本文示例選擇my-medium.cnf,執(zhí)行下面的命令將其復制到/etc目錄:
cp ./support-files/my-medium.cnf /etc/my.cnf
3.1.8 初始化授權表
執(zhí)行下面的命令初始化授權表:
./scripts/mysql_install_db –user=mysql
3.1.9 更改mysql數據目錄屬主和權限
默認數據庫文件保存目錄為安裝目錄下的var目錄,執(zhí)行configure命令時可通過–localstatedir參數指定不同的目錄,本文示例為默認位置。
chown -R mysql.mysql /usr/local/mysql/var
chmod -R 700 /usr/local/mysql/var
3.1.10 設置開機自啟動服務控制腳本
執(zhí)行下面的命令復制啟動腳本到資源目錄:
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
執(zhí)行下面的命令增加mysqld服務控制腳本執(zhí)行權限:
chmod +x /etc/rc.d/init.d/mysqld
執(zhí)行下面的命令將mysqld服務加入到系統服務:
chkconfig –add mysqld
執(zhí)行下面的命令檢查mysqld服務是否已經生效:
chkconfig –list mysqld
命令輸出類似下面的結果:
mysqld:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服務已經生效,在2、3、4、5運行級別隨系統啟動而自動啟動,以后可以使用service命令控制mysql的啟動和停止。
啟動mysqld服務:
service mysqld start
停止mysqld服務:
service mysqld stop
執(zhí)行下面的命令關閉開機自啟動:
chkconfig mysqld off
執(zhí)行下面的命令可以改變開機自啟動的運行級別為3、5:
chkconfig –level 35 mysqld on
3.1.11 將mysql的bin目錄加入PATH環(huán)境變量
編輯/etc/profile文件:
vi /etc/profile
在文件最后添加如下兩行:
PATH=$PATH:/usr/local/mysql/bin
export PATH
執(zhí)行下面的命令使所做的更改生效:
. /etc/profile
3.2 二進制包方式安裝
3.2.1 從安裝媒體安裝
Mysql二進制包已經包含在CentOS 5的安裝媒體中,可以直接從安裝媒體中安裝下面三個rpm包:
mysql-5.0.22-2.1.0.1.i386.rpm
mysql-devel-5.0.22-2.1.0.1.i386.rpm
mysql-server-5.0.22-2.1.0.1.i386.rpm
不同的版本文件名有所不同,請注意區(qū)分。
執(zhí)行下面的命令安裝:
rpm -iUvh mysql-5.0.22-2.1.0.1.i386.rpm
rpm -iUvh mysql-devel-5.0.22-2.1.0.1.i386.rpm
rpm -iUvh mysql-server-5.0.22-2.1.0.1.i386.rpm
3.2.2 通過yum安裝
如果你安裝的機器此時可以連接到互聯網,筆者建議使用yum命令來簡化安裝過程:
yum install mysql-server mysql-devel mysql
yum將自動從centos的鏡像站點查找你指明的軟件的最新二進制包,并檢查軟件包依賴關系,安裝軟件的同時自動安裝其依賴的軟件包。
3.2.3 從mysql網站下載最新穩(wěn)定版本的二進制包安裝
通過CentOS安裝媒體或yum安裝的二進制包版本會落后于mysql開發(fā)者網站發(fā)布的版本,可以從mysql網站下載安裝最新穩(wěn)定版本的mysql。
訪問MySQL網站
下
載最新穩(wěn)定發(fā)行版的相應硬件平臺的MySQL。本文使用的是Red Hat Enterprise Linux 5 RPM (x86)
5.0.45版本。需要下載Server、Client、Headers and Libraries、Share Libraries/Shared
compatibility libraries幾個rpm包,其它為可選包,按需要選擇。
在linux系統下用下面的命令下載:
wget
wget
wget
wget
wget
執(zhí)行下面的命令安裝:
rpm -iUvh MySQL-server-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-client-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-devel-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-compat-5.0.45-0.rhel5.i386.rpm
4. MySQL的配置
4.1 目錄結構
4.1.1 源碼包方式安裝目錄結構
源碼包方式安裝時通常是在3.1.4節(jié)中configure命令的–prefix選項指定的目錄中建立如下的目錄結構,特殊指定的目錄除外:
./bin #mysql用戶可執(zhí)行文件目錄
./include/mysql#mysql C頭文件目錄
./info #mysql 信息文件目錄
./lib/mysql #mysql庫文件目錄
./libexec#mysql后臺daemon程序目錄
./man #mysql聯機幫助文檔目錄
./mysql-test #mysql測試程序目錄
./share/mysql#mysql公用文件目錄,包括字符集、配置文件模板、啟動腳本、初始化SQL文件等
./sql-bench #mysql壓力測試程序目錄
/etc/my.cnf #mysql配置文件
/etc/rc.d/init.d/mysqld #mysqld服務啟動腳本
4.1.2 RPM二進制包方式安裝目錄結構
二進制包方式安裝時使用系統軟件默認目錄結構 :
/usr/bin#mysql用戶可執(zhí)行文件目錄
/usr/libexec#mysql后臺daemon程序目錄
/usr/lib/mysql#mysql庫文件目錄
/usr/lib64/mysql #如果為64系統,mysql 64位庫文件目錄
/usr/share/doc#mysql文檔目錄
/usr/share/info#mysql信息文件目錄
/usr/share/man #mysql聯機幫助文檔目錄
/usr/share/mysql #mysql字符集目錄
/usr/include/mysql #mysql C頭文件目錄
/var/log#mysqld服務日志文件目錄
/var/run/mysqld #mysqld服務運行狀態(tài)目錄
/var/lib/mysql#mysql數據文件目錄
/etc/my.cnf #mysql配置文件
/etc/rc.d/init.d/mysqld #mysqld服務啟動腳本
4.2 配置文件
Linux
系統下,mysql的配置參數文件為my.cnf,一般按下面的順序查找此文件:/etc目錄、mysql安裝目錄、mysql數據目錄。配置模板位于源
碼樹的support-files目錄,有my-all.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四
個,關于mysql配置文件的詳細信息請參閱筆者的其它文章或是mysql官方文檔。
4.3 啟動mysqld服務
執(zhí)行下面的命令啟動mysql:
service mysqld start
4.3 設置mysql帳號
mysql安裝后默認生成兩個帳號:一個是root,未設置密碼,可以從本機登錄到mysql;另一個是匿名帳號,無帳號名、無密碼,可以從本機登錄,未提供用戶名的連接都將假定為此帳號。這樣的設置存在著安全隱患,按下面的步驟進行更改。
以root帳號連接到mysql服務器:
mysql -u root
如果提示找不到mysql文件,請嘗試使用絕對路徑,如本文示例為:
/usr/local/mysql/bin/mysql -u root
命令成功執(zhí)行后將進入到mysql命令提示符下:
mysql>
(以下命令均在mysql命令提示符下執(zhí)行)
改變當前數據庫為mysql:
use mysql
設置從本地主機登錄的root帳號密碼:
set password for root@localhost=password(‘your password’);
或:
update user set password=password(‘your password’) where user=’root’ and host=’localhost’;
刪除匿名帳號:
delete from user where user=” ;
刪除密碼為空的帳號:
delete from user where password=”;
刪除允許非localhost主機登錄的帳號:
delete from user where host’localhost’ ;
執(zhí)行下面的命令使更改生效:
flush privileges ;
執(zhí)行下面的命令退出mysql命令行:
quit
或:
/q
5. 結束語
至此,Mysql基本安裝完畢。希望本文能對初學者有所幫助。
關于linux mysql 不支持gbk的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
香港服務器選創(chuàng)新互聯,2H2G首月10元開通。
創(chuàng)新互聯(www.cdcxhl.com)互聯網服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網站系統開發(fā)經驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
標題名稱:Linux下MySQL不支持GBK編碼(linuxmysql不支持gbk)
文章源于:http://m.5511xx.com/article/cdcgcph.html


咨詢
建站咨詢
