mysql生僻字插入失败解决方案

当项目已经上线运行,原来编码统一为utf8 一时间全部表字段一个一个修改为utf8mb4 很麻烦

想达到的目的是只修改可能存在生僻字的字段:

1、修改可能存在生僻字插入的字段,例如:

ALTER TABLE news CHANGE title title VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ‘‘ COMMENT ‘标题‘;

这里除了修改字符集之外,需要加大存储

2、设置mysql字符集:
mysql> set character_set_client=utf8mb4;

mysql> set character_set_connection=utf8mb4;

mysql> set character_set_database=utf8mb4;

3、PHP 连接mysql 也设置为 utf8mb4,否则读取生僻字只显示一个问号

完成以上三步即可

当然理想的设置是 所有数据库 表 字段,php程序,统一设置为utf8mb4

原文地址:https://blog.51cto.com/11910656/2436338

时间: 2024-11-11 09:10:43

mysql生僻字插入失败解决方案的相关文章

MySQL生僻字插入失败的处理方法

最近,业务方反馈有个别用户信息插入失败,报错提示类似"Incorrect string value:"\xF0\xA5 ..... "   看这个提示应该是字符集不支持某个生僻字造成的. 下面是在虚拟机里复现的场景: step1.模拟原始表结构字符集环境: use test; CREATE TABLE `t1` ( `id` int(10) NOT NULL AUTO_INCREMENT, `real_name` varchar(255) CHARACTER SET utf8

关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析

1.问题:mysql 遇到某些中文插入异常 最近有同学反馈了这样一个问题: 上述语句在脚本中 load 入库的时候会 hang 住,web 前端.命令行操作则要么抛出 Incorrect string value: '\xF0\xA1\x8B\xBE\xE5\xA2...' for column 'name', 要么存入MYSQL数据库的内容会被截断或者乱码,而换做其它的中文则一切正常. 嗯,看起来有点奇怪哈,按理说 utf8 编码是覆盖了所有中文的,不应该出现上述问题. 2.原因:此 utf8

mysql 生僻字乱码

参考网址:http://www.haodaima.net/art/2025815 字符集编码插入Mysql数据库是,字符utf8编码超过3位时的错误以及解决,Incorrectstringvalue:'\xF0\xA1\xBF\xA8\xE9\x82...'forcolumn 发一下牢骚和主题无关: Incorrect string value: '\xF0\xA1\xBF\xA8\xE9\x82...' for column 'last_name' 这个问题出在mysql上,mysql如果设置

mysql添加外键失败解决方案

mysql重启命令: Redirecting to /bin/systemctl stop  mysqld.service[[email protected] centOS7Share]# systemctl start mysqld.service[[email protected] centOS7Share]# mysql -uroot -proot123 mysql运行sql文件:source /mnt/hgfs/XXX.sql; 初始化sql运行导致的外键关联失败: :35:31.428

客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案

最近在制作一个安装包,需要安装的时候执行mysql脚本儿,做了一个批处理,但是发现总是执行到 插入中文的时候报错,或者插入中文是乱码. 网上查了好多资料,说是把编码改成GBK什么的,终究还是不成功. 最后经过多次测试,现把解决方案分享给大家. 第一步:打开mysql中的配置文件,my.ini,看一看配置文件中 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 看是不是这样配置的.因为utf8 是国际通用的,

powerdesigner 逆向工程 mysql失败解决方案

参考网上powerdesigner 逆向工程 mysql的资源的一个blog  http://blog.csdn.net/chamtianjiao/article/details/7258316 遇到的问题: 问题一:安装了odbc 32bit  驱动程序  但是管理工具-odbc中添加面板里面没有mysql驱动 无法加载 参考网上一些观点 系统自带的odbc管理工具是有64位 跟32位之分的  结合自己系统64位win7的因素 下载64bit 驱动程序  →安装→添加odbc驱动成功→test

cmd控制台插入mysql数据库中文信息时,插入失败的解决办法

故障码: mysql> insert into t1(name,sex,age,address) values('张三','男',11,'沙河'); ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1 该故障是由于中文编码不一致导致的数据插入失败所致. 一般mysql数据库在插入中文信息时出错的情况无外乎就是中文编码不一致所致.而目前支持中文的编码格式基本上有utf-8

mysql无法启动问题的解决方案:mysql.sock重启不自动生成,mysqld_safe启动报错

mysql无法启动问题的解决方案:mysql.sock重启不自动生成,mysqld_safe启动报错 - superlucky 时间 2013-08-03 11:55:00 博客园-原创精华区 原文  http://www.cnblogs.com/super-lucky/p/superlucky.html 主题 MySQL 本人还是个菜鸟,下面是我的经验之谈,能解决一些问题,有不对的地方,敬请斧正. 我的是CentOS6.3+MySQL5.1.57. 重启了一次服务器后, 使用> mysql -

code is 9998;desc is 插入失败exception is org.hibernate.exception.JDBCConnectionException: Could not op

1.错误描述 [ERROR:]2015-05-05 09:27:12,090 [插入失败] org.hibernate.exception.JDBCConnectionException: Could not open connection at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132) at org.hibernate.exce