封尘网

让学习成为一种习惯!

针对mysql的中文乱码问题解决

连接Mysql时会出现中文乱码或者无法输入中文,其实出现这个乱码问题的主要在3个地方:

1.mysql 连接客户端
2.mysqld 服务端
3.mysql的db数据库本身的编码问题

针对这乱码问题有三种解决办法:

方法一、在配置文件,找到my.cnf的位置

[client]字段里加入default-character-set=utf8,如下:

[client]
default-character-set=utf8

同进也修改下面的;

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

前面两个地方修改完后service mysql restart重启mysql服务

方法二,修改全局字符编码属性
登陆mysql数据库后执行:
set names utf8;

它相当于下面的三句指令:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

方法三 :指定数据库的字符编码和数据库表的字符编码

例如:
1、创建数据库的时候:

CREATE DATABASE `user_58jb` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

2、建表的时候

 CREATE TABLE `web_58jb` (
`id` varchar(40) NOT NULL default '',
`userid` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

`

设置数据库mydb默认编码为utf8:

那么如果数据库或表已经建成了呢,也可以通过alter修改数据库:

mysql>alter database my_db  character set utf8;

修改my_table默认编码为utf8:

mysql>ALTER TABLE `my_table` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

备注:
最好在创建数据库和表的时候就设置好字符编码,这样的话就可以彻底避免字符编码乱码问题了。

提醒:本文最后更新于 2874 天前,文中所描述的信息可能已发生改变,请谨慎使用。