mysql中文乱码或者中文报错
当出现中文乱码或者执行包含中文的语句报错时,十有八九就是编码的问题,我们可以执行下面语句查看编码:
SHOW VARIABLES LIKE '%char%'
显示

其中character_set_server是服务器编码:latin1,这个也是mysql默认的编码,我们可以使用set命令修改这个编码:
SET character_set_server = utf8;
但是这个set修改是临时的,如果mysql重启之后,这个编码会重新设置成默认编码latin1
所以我们最好是去修改配置文件中的默认编码:
先进入mysql的主目录,在目录下会有个my.cnf文件,打开查看里面有没有mysqld节点配置,我这里是没有的,里面是:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
想必这两个指的是mysql配置文件的目录,然后分别进入这两个目录,发现/etc/mysql/mysql.conf.d/目录下的mysqld.cnf文件里有mysqld节点配置,然后将上面配置加上(存在则修改)即可:

如果都没有找到mysqld节点,那直接在my.cnf中加上mysqld节点,再将上面的配置加上(存在则修改)即可
修改完成需要重启下mysql服务:service mysql restart
注意,这里修改之后,只对重新创建的表才能生效,对于已经存在的表,我们修改手动修改它的编码:
-- utf8_general_ci表示utf8编码,latin1_swedish_ci表示latin1编码,是默认编码
-- 查看表编码
SELECT TABLE_COLLATION FROM information_schema.`TABLES` WHERE TABLE_NAME='table_name';
-- 查看列编码
SELECT COLLATION_NAME FROM information_schema.`COLUMNS` WHERE TABLE_NAME='table_name' AND COLUMN_NAME='column_name';
-- 修改表编码
ALTER TABLE [表名] CONVERT TO CHARACTER SET utf8;
-- 修改列编码
ALTER TABLE [表名] MODIFY [列名] [类型] CHARACTER SET utf8;
另外,如果修改了mysql的服务器的字符编码为utf8,但是还是现实中文乱码,那么可能是客户端编码问题,执行 SHOW VARIABLES LIKE '%char%' 查看character_set_client参数是否是utf8,如果不是,则在配置文件中添加节点:
[client]
default-character-set=utf8
mysql中文乱码或者中文报错的更多相关文章
- JS方法使用中文出参数 ,报错异常
正常这样加载数字没问题,但是当参数是中文时就会报错 <li onclick='onSeach(‘’" + name+ "');'>" + name+ &quo ...
- MySQL 表与字段编码格式报错
MySQL 表与字段编码格式报错 一.数据库,表,字段编码格式都为latin1(iso-8859-1) .当数据保存到数据库后,中文显示乱码. 解决办法: 1.在访问数据库连接串中添加编码格式: &l ...
- 在给mysql数据库备份时,报错: mysqldump: Got error: 145: Table '.\shengdaxcom\pre_forum_thread' is marked as c rashed and should be repaired when using LOCK TABLES
在给mysql数据库备份时,报错: mysqldump: Got error: 145: Table '.\shengdaxcom\pre_forum_thread' is marked as cra ...
- egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client
egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; con ...
- eclipse中运行python脚本中有注释为中文的内容,报错:SyntaxError: Non-ASCII character '\xe5'
'''Created on 2015年7月2日 @author: liujuan'''import sysreload(sys) 以上为注释的有个日期中文的,结果运行报错:SyntaxError: N ...
- windows mysql 中文乱码和中文录入提示太大错误的解决方法
今天操作mysql的时候很郁闷,因为修改默认字符集搞了半天,终于弄成了(关于如何把windows的默认字符集设置成功,可以参看另一篇博文,最终在mysql中输入show variables like ...
- pandas read_csv 读取中文列标题文件报错
Traceback (most recent call last): File "C:/Users/arron/PycharmProjects/ML/ML/test.py", li ...
- jsp中文乱码 Servlet中文乱码 utf-8
JSP+Servlet项目中,项目统一使用utf-8编码.配置过滤器过滤所以请求并设置utf-8编码,jsp页面也都设置utf-8,但是还有一点很容易忽视的就是tomcat也要设置utf-8,默认情况 ...
- MySQL server has gone away报错原因分析/
在平时和开发的交流 以及 在论坛回答问题的或称中会发现这个问题被问及的频率非常高. 程序中报错: MySQL server has gone away 是什么意思? 如何避免? 因此,感觉有必要总结一 ...
随机推荐
- Linux学习 - 目录表
目录名 作用 权限 说明 /bin/ 存放系统命令的目录 所有用户 存放在/bin/下的命令单用户模式下也可以执行 /sbin/ 保存和系统环境设置相关的命令 root ...
- Spring.DM web开发环境搭建
作为一个初学者来说,搭建好Spring.DM 的web开发环境还是有些麻烦的.我就遇到了N多麻烦,走了很多弯路.本文介绍了2种比较简单的搭建Spring.DM OSGi web开发环境的搭建. 第 ...
- POST/GET请求中RequestBody和RequestParam的应用场景
POST请求时 @RequestBody --> JSON字符串部分 @RequestParam --> 请求参数部分 application/json格局图 图一.png form- ...
- 【Java 8】Stream.distinct() 列表去重示例
在这篇文章里,我们将提供Java8 Stream distinct()示例. distinct()返回由该流的不同元素组成的流.distinct()是Stream接口的方法. distinct()使用 ...
- 【JS】原生实现拖拽
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- MySQL5.7安装教程(亲测有效)
跟着狂神学java到了数据库阶段了,首先得安装好数据库啊,这里用的是MySQL 压缩包下载:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5. ...
- Redis图形管理 redis-browser
目录 一.介绍 二.部署 三.启动 监听单台 听多台 四.报错合集 一.介绍 redis-browser是redis的web端图形化管理工具.利用它可以查看和管理redis的数据,界面简洁,能和ral ...
- Python matplotlib绘图设置图例
一.语法简介 plt.legend(loc=2,edgecolor='red',facecolor='green',shadow='True',fontsize=10) #edgecolor 图例边框 ...
- 【划重点】Python matplotlib绘图建立画布和坐标系
一.建立画布 import matplotlib.pyplot as plt import numpy as np x=np.arange(8) y=np.arange(8) print(x,y) # ...
- Python用xlrd读取Excel数据到list中再用xlwt把数据写入到新的Excel中
一.先用xlrd读取Excel数据到list列表中(存入列表中的数据如下图所示) import xlrd as xd #导入需要的包 import xlwt data =xd.open_workboo ...