linux下插入的mysql數據亂碼問題及第三方工具顯示亂碼問題


一、lampp環境下的數據庫亂碼問題

問題描述:

在做mysql練習的時候發現新創建的數據庫中插入數據表中的記錄中文出現亂碼的問題,如下圖:

經過多方查證,整里如下文擋:

前提:

我自己的環境是使用的lampp下的mysql,該配置文件是在/opt/lampp/etc/my.cnf;如果是自己安裝的mysql,那么配置文件一般都在/etc/my.cnf

解決辦法:

1、首先進入msyql,然后使用show variables like 'character%' ,執行編碼顯示,可以看到如下圖所示:

默認的是客戶端和服務器都用了latin1,所以會亂碼。

2、修改/opt/lampp/etc/my.cof文件

[client]
#password       = your_password
port            = 3306
socket          = /opt/lampp/var/mysql/mysql.sock
default-character-set=utf8 //添加該語句

[mysqld]
user = mysql
port=3306
socket          = /opt/lampp/var/mysql/mysql.sock
skip-external-locking
key_buffer = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character_set_server=utf8 //添加該語句

[mysql]
no-auto-rehash
default-character-set=utf8 //添加該語句

在mysql,mysqld,client下分別添加如上語句

注意:如果修改后不能啟動報錯試試把default-character-set=utf8改為character_set_server=utf8;我這里遇到了該問題,所以去掉了default后就正常了 ,腳本中沒有使用default-character-set=utf8。
3、使用命令drop database 數據庫名,刪除創建的數據庫

4、重啟mysql的服務:/opt/lampp/lampp restart

5、重新創建數據庫及表結構,再次插入數據即可正常使用,如下圖:

方法2:

網上還有另外一種使用SQL語句修改編碼值的,但是我試了一下,通過SQL語句是可以修改編碼值,但是重啟mysql服務后還是會變回原來的值,而且即便使用SQL語句修改過來后在重新創建數據表在插入數據還是會產生亂碼(也可能哪里操做不對,但是不我提倡這么修改)

使用SQL語句修改的方法:

1、首先進入mysql,然后在mysql下執行如下語句:

SET character_set_database = utf8;
SET character_set_server = utf8;

2、使用命令show variables like 'character%' ,執行編碼顯示,可以看到如下圖所示:

3、在使用create database test;創建數據庫,在該庫中創建數據表,然后在插入數據,查看是否正常!

二、linux下yum自動安裝MySQL亂碼問題解決辦法

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

如果使用yum方法自動安裝的MySQL服務,則MySQL的配置文件是在/etc/my.cnf;修改該文件的時候可能出現該文件中只有[mysqld]、[mysqld_safe],如果我們只是在mysqld下邊加入

default-character-set=utf8,無法將所有的選項都修改為utf8的格式,如下圖:

所以這里我們需要在my.cnf文件下手動配置[client]選項並在該選項下加入:default-character-set=utf8即可,如下圖:

添加完成后重啟MySQL的服務,然后在重新創建數據庫和數據表,之后在使用第三方管理工具連接就不會出現亂碼的問題了,如下圖。

總之遇到亂碼的問題,可以通過show variables like 'character%' ; 該命令進行查看,將字符集設置成utf8后基本都會解決掉。

 

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

參考文檔:

http://www.pc6.com/infoview/Article_63586.html

http://blog.csdn.net/mengzhengjie/article/details/50040527

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM