liferay调用mysql插入中文

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

iferay插入中文失败

事由:公司的liferay项目一直无法实现插入中文。

1、         首先测试字符集

mysql>status;    //显示服务器四种字符集,从上到下它包括服务器字符集,数据库字符集,客户端字符集,链接字符集

如果不是,可以通过/etc/my.cnf配置文件进行修改

client】用于定义客户端字符集和链接字符集

 

mysqld】控制着服务器字符集和数据库字符集

下面的collation-server是校验字符集

Mysql>show character set;  //查看校验字符集

2、         查看客户数据库字符集

首先use该数据库,然后“character_set”命令查看

发现使用的不全是utf8,问题找到。

mysql> set character_set_database=utf8;  //修改字符集

或执行
  mysql>use mydb
  mysql>alter database mydb character set utf-8;  //
修改客户字符集

然后查看,已经修改完毕

3、         分析问题

但此时测试还是不行,因为我们的数据库是在西文的编码格式下创建的表,这时虽然编码正确了,但是字段值的编码仍然延续西文编码方式。结论:我们导出数据,修改编码再导入。

4、导出导入

Mysqldump liferay>/root/liferay.sql

Vi /root/liferay.sql

发现近百张表使用西文字符,我们利用vi批量修改。

Mysql>create database liferaytest character set 'utf8';    //创建测试数据库。

#Mysql  liferaytest  </root/liferay.sql  //导入数据

4、         测试:

我们更新liferaytest中一个表,插入中文,奇迹发生了生效了。

 

6.实施计划

Mysql >drop database liferaytest;

#mysql liferay </root/liferay.sql   //导入数据

页面测试,一切ok

 

感悟:对于数据编码一定要熟悉,首先它的四种编码一定要一致,其次操系统要支持utf8,其次putty支持utf8,再次保证链接语句支持utf8,这些充分了解的基础上,结论也就容易得到了。

                                         ---saisai 20120822


本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/970109

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 关系型数据库 MySQL
【MySQL专题】MySQL百万级数据插入效率优化
【MySQL专题】MySQL百万级数据插入效率优化
561 0
【MySQL专题】MySQL百万级数据插入效率优化
|
关系型数据库 MySQL
mysql中插入语句ON DUPLICATE KEY用法
ON DUPLICATE KEY是mysql中特有用法
368 0
|
关系型数据库 MySQL Linux
Linux下C语言实现MySQL操作——连接、查询、插入与客户端打造
Linux下C语言实现MySQL操作——连接、查询、插入与客户端打造
332 0
Linux下C语言实现MySQL操作——连接、查询、插入与客户端打造
|
关系型数据库 MySQL
Mysql中文汉字转拼音的实现
Mysql中文汉字转拼音的实现
378 0
|
存储 关系型数据库 MySQL
MYSQL——Split字符串并且插入值
MYSQL——Split字符串并且插入值
116 0
|
存储 关系型数据库 MySQL
MySQL InnoDB的插入缓冲Insert Buffer
MySQL InnoDB的插入缓冲Insert Buffer
131 0
MySQL InnoDB的插入缓冲Insert Buffer
|
SQL 关系型数据库 MySQL
MySQL插入Emoji表情
MySQL插入Emoji表情
MySQL插入Emoji表情
|
关系型数据库 MySQL 数据库
mysql插入表时报错ERROR 1067 (42000): Invalid default value for ‘end_time‘
mysql插入表时报错ERROR 1067 (42000): Invalid default value for ‘end_time‘
|
SQL 关系型数据库 MySQL
MySQL中的批量操作(修改,插入)
在平常的项目中,我们会需要批量操作数据库的时候,例如:批量修改,批量插入,那我们不应该使用 for 循环去操作数据库,这样会导致我们反复与数据库发生连接和断开连接,影响性能和增加操作时间
421 0
|
Java 关系型数据库 MySQL
mybatis -plus插入mysql数据,数据库时间比系统时间差8小时
mybatis -plus插入mysql数据,数据库时间比系统时间差8小时
mybatis -plus插入mysql数据,数据库时间比系统时间差8小时

推荐镜像

更多