开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

mysql的库表字段字符集都改成utf8mb4了,现在要怎么操作呢

odps同步到mysql脏数据报错,因为底层数据包含表情符号,但mysql的库表字段字符集都改成utf8mb4了,现在要怎么操作呢

展开
收起
游客6vdkhpqtie2h2 2022-09-27 09:55:35 1041 0
6 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    需要先进行转码的,不然不好操作的,这个在数据库中是经常遇到的事情

    2022-11-28 09:59:05
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    根据报错信息来看的话应该还是你的mysql映射字段的字符集的问题,但是根据你的描述,你已经将mysql数据库和数据表对应字段的字符集都改成了utf8mb4,那么现在首先需要确认一下你的mysql数据库和数据表对应字段的字符集是否修改成功了,查看数据库字符集;SHOW CREATE DATABASE 数据库名称; 查看数据表字符集:SHOW TABLE STATUS FROM 数据库名称 LIKE 数据表名称; 查看字段字符集:SHOW FULL COLUMNS FROM 数据表名称; 都确认完成之后如果发现某一项字符集没有改成utf8mb4,那么执行对应操作修改即可

    2022-11-26 21:55:19
    赞同 展开评论 打赏
  • 方法一:单独修改需要保存特殊符号的字段编码 1.将字段编码改为utf8mb4

    ALTER TABLE 数据库表名 MODIFY `字段名` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    2.查看字段编码是否修改成功:SHOW FULL COLUMNS FROM 表名;

    方法二:备份数据,重新创建数据库表 1.备份数据库数据mysqldump -uroot -p密码 --databases 数据库名 > all_data.sql 2.删除数据库drop database 数据库名 3.重新创建数据库create database 数据库名 4.新建数据库表,将编码改为utf8mb4CHARSET=utf8mb4

    CREATE TABLE IF NOT EXISTS `数据库表名`(
               `id` INT UNSIGNED AUTO_INCREMENT,
               `字段1` VARCHAR(100) NOT NULL,
               `字段2` INT NOT NULL,
               PRIMARY KEY ( `id` )
            )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    

    5.导入数据库数据mysql -uroot -p密码 < all_data.sql 6.然后重新插入带表情包符号的内容就正常了。

    2022-11-26 08:11:14
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主,首先找到数据库的配置文件,然后查看一下配置文件,然后找到对应的节点,都设置成utf8mb4,重启数据库,最后修改字符集的配置。

    2022-11-26 08:10:29
    赞同 展开评论 打赏
  • coder at work

    执行 show variables like '%char%'; 确认字符集修改是否生效了

    2022-11-23 22:17:41
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

     1、找到Mysql配置文件,通过查看MySql服务的启动命令来确认配置文件

    image.png  

      2、打开配置文件,分别在【client】【mysql】【mysqld】节点下设置对应参数如下:

        

    复制代码 [client] default-character-set = utf8mb4

    [mysql] default-character-set = utf8mb4

    [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci 复制代码   3、重启Mysql服务,可以直接在服务里右键重启,也可用以下命令重启:

    service mysqld restart 或 service mysql restart   4、将数据库、表、对应字段字符集都修改为 utf8mb4,参与以下命令

    复制代码 -- 查看数据表的编码格式 show create table <表名>;

    --修改数据库的编码格式 alter database <数据库名> character set utf8mb4;

    --修改数据表格编码格式1 alter table <表名> character set utf8mb4;

    --修改字段编码格式 alter table <表名> change <字段名> <字段名> <类型> character set utf8mb4; 复制代码   5、修改程序连接串的字符集配置

    2022-11-23 16:05:17
    赞同 展开评论 打赏
滑动查看更多

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关电子书

更多
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载
阿里云企业级自治数据库 RDS 详解 立即下载
阿里云MySQL云数据库产品体系介绍 立即下载

相关镜像