Linux MySQL亂碼問題(配制文件作怪)總結
操作系統環境:
RedHat Enterprise linux 4 、MySQL 5.1
現象:
在此電腦上安裝了Tomcat作為web服務器,部署了一個項目,通過jdbc連接到mysql數據庫。但是發現中文輸入輸出亂碼現象。
解決步驟:
1. 找到mysql的配置文件
如果安裝時,忘記為MySQL設置配制文件,所以在系統中找不到 /etc/my.cnf。
解決辦法:
首先找到一個事例配制文件(例如:my-medium)
#find / -iname ".cnf" -print
找到后,根據自己的文件路徑如:
cp /usr/local/mysql-6.0.4a-alpha-linux-i686-glibc23/support-files/my-medium.cnf /etc/my.cnf
COPY一分就哦了。
(以下在網上摘錄 謝謝作者!)
2. 打開my.cnf修改編碼
# vi /etc/my.cnf
在[mysqld]下添加
default-character-set=utf8
在[client]下添加
default-character-set=utf8
3. 重啟mysql
根據你安裝mysql的方式的不同,采用不用的命令來重啟你的mysql。如果你配置過使用mysqld自啟動方式,可以執行
# /etc/rc.d/init.d/mysql restart
來重啟。
(本人系統是這樣的!!)
或者你把mysql配置成系統服務的方式,你可以執行
# service mysql restert
但是如果你僅僅按照INSTALL-BINARY來啟動mysql的話,如
shell> bin/mysqld_safe --user=mysql &
那么你可能需要找出mysql的進程,然后kill了它們。如
# ps -aux | grep mysql
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
root 24246 0.0 0.0 4532 1076 pts/7 S 13:36 0:00 /bin/sh bin/mysqld_safe --user=mysql
mysql 24273 0.0 1.0 305872 43712 pts/7 S 13:36 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/cmmi.pid --skip-external-locking --port=3306 --socket=/tmp/mysql.sock
從顯示出來的結果找到進程id,殺掉他們
# kill -9 24246
# kill -9 24273
最后再重啟。
posted on 2009-02-15 21:09 SCJP-SCWCD-SCEA 閱讀(179) 評論(0) 編輯 收藏