datax同步emoji表情到mysql报错

送分小仙女□ 提交于 2019-12-06 13:48:05

前期已经通过msyql客户端(黑窗口)修改了mysql的编码和字符集,

mysql中已经可以插入emoji表情,但是通过数据同步(datax),从hive同步emoji表情到mysql报错:

 

 

 

 解决方案:

-- 修改mysql配置文件
 
vim /etc/my.cnf
 
-- 添加如下内容
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
 
-- 重启mysqld
systemctl restart mysqld.service
 
-- 查看myqld运行状态,保证重启之后的mysql正常运行
service mysqld status
 
-- 建库
CREATE DATABASE `xcdqm` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
 
-- 建表
CREATE TABLE `test_emoji` (
  `id` int(11) DEFAULT NULL,
  `emoji` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
 
 
-- 在hive中建表,并插入数据,并通过平台的数据同步任务(datax)将数据从hive同步到msyql
-- 如下语句不能直接在mysql客户端(黑窗口执行),会报错(表情被转义)
insert into table test_emoji values
(12345, '🐢'),
(12345, '🐇'),
(12345, '🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓🍓’);
 
 
 
最后,在msyql中可以只是查询出来表情,如最后的图所示。
 
 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!