修改MySQL数据库字符编码为UTF-8解决中文乱码

问题:

由于MySQL编码原因会导致数据库出现乱码。

解决办法:

修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。

具体操作:

1、进入MySQL控制台

mysql -uroot -p #输入密码进入

status; #查看当前MySQL运行状态,如下图所示:

系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容版权所有,转载请注明出处及原文链接

Server characterset: latin1

Db characterset: latin1

Client characterset: utf8

Conn. characterset: utf8

默认客户端和服务器端都用了latin1编码,所以会出现乱码。

2、修改mysql配置文件

vi /etc/my.cnf

#在[client]段增加下面代码

default-character-set=utf8

#在[mysqld]段增加下面的代码

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

:wq! #保存退出

3、service mysqld restart #重启MySQL

再次进入MySQL控制台查看,如下图所示:

Server characterset: utf8

Db characterset: utf8

Client characterset: utf8

Conn. characterset: utf8

show variables like 'character_set_%' #查看MySQL字符集

MySQL数据库字符集编码修改完成!

参数说明:

character_set_client:客户端请求数据的字符集。

character_set_connection:从客户端接收到数据,然后传输的字符集。

character_set_database:

默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,

使character_set_server指定的字符集,此参数无需设置。

character_set_filesystem:

把操作系统上文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary即可。

character_set_results:结果集的字符集。

character_set_server:数据库服务器的默认字符集。

character_set_system:这个值总是utf8,不需要设置,存储系统元数据的字符集。

备注:

MySQL 5.5之前的版本设置办法:

在[client]段下添加

default-character-set=utf8

在[mysqld]段下添加

default-character-set=utf8

注意,如果修改后不能启动报错,把[mysqld]段下default-character-set=utf8改为character_set_server=utf8,取消[client]段的设置。

创建数据库的命令:

Create DATABASE IF NOT EXISTS mydata default charset utf8 COLLATE utf8_general_ci;

时间: 2024-12-22 15:14:23

修改MySQL数据库字符编码为UTF-8解决中文乱码的相关文章

oracle11g-oracle数据库的编码为US7ASCII。取出中文乱码,怎么可以不改数据库编码的情况下转码

问题描述 oracle数据库的编码为US7ASCII.取出中文乱码,怎么可以不改数据库编码的情况下转码 oracle数据库的编码为US7ASCII,在jsp页面取出来为乱码,我需要怎么才能把乱码转成正常中文显示String newStr= new String(name.getBytes("ISO-8859-1"),"GBK");这段代码可以转成正常数据,我希望有个方法可以改变全局中文乱码的方法.求大神指教 解决方案 要么改数据库的编码,要么写一个编码转换方法,每次

php网页与mysql的字符编码问题?

问题描述 php网页与mysql的字符编码问题? 一般在php与mysql中,涉及到字符编码有四个位置 1. html的meta标签中 2..html或者.php文件的字符类型 3.mysql中的数据库的字符集 4.表中字段的字符编码. 那么为了防止在数据库中或者在前端中,中文显示出现乱码, 上面的字符编码应该怎样设置呢? 解决方案 参考:http://blog.csdn.net/cfchengfei002/article/details/7301876 解决方案二: mysql用utf8编码,

如何修改MySQl数据库的root密码

修改MySQl数据库的root密码可以通过以下几种方式来进行: 一.在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法: 1.在SHELL环境下,使用mysqladmin命令设置:mysqladmin –u root –p password "新密码"回车后要求输入旧密码 2.在mysql>环境中,使用update命令,直接更新mysql库user表的数据: Update mysql.user set password=password('新密码') where u

使用phpMyAdmin修改MySQL数据库root用户密码的方法

  这篇文章主要介绍了使用phpMyAdmin修改MySQL数据库root用户密码的方法,需要的朋友可以参考下 点击顶部的"SQL"标签进入sql命令输入界面.输入以下命令: 代码如下:update mysql.user set password=PASSWORD('jb51$123456') where user='root'; 然后点击右下角的"执行",没有报错就表示修改成功. 另外需要注意的是,如果你修改了root密码之后我们的phpMyAdmin的配置文件中

mysql-thinkphp修改MySQL数据库字段失败

问题描述 thinkphp修改MySQL数据库字段失败 想要修改数据表里的uname和phone字段而其他字段不变,提示失败$info['uname'] = I('uname'); $info['phone'] = I('phone');$uid = session('uid');$res=M('member')->where('uid = ""$uid""')->setField($info); 解决方案 'uid = ""$uid

字符编码转化问题急需解决

问题描述 字符编码转化问题急需解决 AGwAaQBuAGeAdABl 说是:unicode的base64编码,说编码内容是:lingtu 但是我将 lingtu 写成unicoebase64为 bGluZ3R1 有人说是:还要进行大小端转化,但是这个怎么转化我不懂

通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...

原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了.   一.定位错误   定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟"不是所有的牛奶都叫特仑苏

Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)_Mysql

mysql 中常常出现对中文支持不友好的情况常见的错误 "Illegal mix of collations for operation" 下面我们规整一下 mysql 数据库中一共涉及到哪些字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的 character-set-database:数据库字符集 character-set-table:数据库表字符集 一般情况下只需要设置character-set-ser

c++ 编程问题-c++与java通信(socket TCP)c++用的默认的编码,java用的UTF-8 怎么解决中文乱码问题

问题描述 c++与java通信(socket TCP)c++用的默认的编码,java用的UTF-8 怎么解决中文乱码问题 c++代码如下,谁可以试着尝试一下,谢谢 #include #include #include #pragma comment(lib,"ws2_32.lib") void main() { //创建套接字 WORD myVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); int err;