mysql亂碼的問題如何解決

lightwing發表於2021-09-11

mysql亂碼的問題如何解決

mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。

1、中文亂碼

create table user(name varchar(11));    # 建立user表
insert into table user("carl");         # 新增資料
select * from user;

mysql亂碼的問題如何解決

插入中文問題:

insert into user value("哈哈");

mysql亂碼的問題如何解決

解決方法:

檢視錶字元編碼

mysql> show create table user G;
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `name` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

我們可以看到表的預設字符集是latin1. 

所以我們在建立表的時候就需要指定表的字符集:

create table user(name varchar(11)) default charset=utf8;

這樣在Linux裡面可以訪問並且可以插入與訪問這個表了。

在客戶端顯示亂碼問題:

在伺服器端可以顯示中文正常,但是在客戶端可能會顯示亂碼。因為我們的伺服器是UTF8

mysql亂碼的問題如何解決

而且資料庫的編碼也存在問題:

mysql亂碼的問題如何解決

解決方法:

檢視資料庫編碼:

show variables like '%char%';

mysql亂碼的問題如何解決

修改字元編碼:

set character_set_server=utf8;
set character_set_database=utf8;
show variables like '%char%';

mysql亂碼的問題如何解決

永久修改字符集:

修改mysql配置檔案/etc/my.cnf:

[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

請注意這幾個引數配置的位置,不然可能會啟動不起來mysql服務:

mysql亂碼的問題如何解決

推薦:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3407/viewspace-2833857/,如需轉載,請註明出處,否則將追究法律責任。

相關文章