mysql乱码的问题如何解决
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。
1、中文乱码
create table user(name varchar(11)); # 创建user表insert into table user("carl"); # 添加数据
select * from user;
插入中文问题:
insert into user value("哈哈");
解决方法:
查看表字符编码
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
而且数据库的编码也存在问题:
解决方法:
查看数据库编码:
show variables like '%char%';
修改字符编码:
set character_set_server=utf8;set character_set_database=utf8;
show variables like '%char%';
永久修改字符集:
修改mysql配置文件/etc/my.cnf:
[mysqld]character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
请注意这几个参数配置的位置,不然可能会启动不起来mysql服务:
推荐:MySQL教程
以上是 mysql乱码的问题如何解决 的全部内容, 来源链接: utcz.com/z/538769.html