1.报错
背景就是新环境发生问题,以前没遇到过
call get_phone(1,@name,@phone)
1366 - Incorrect string value: '\xE6\x9C\xB1\xE8\x8C\xB5' for column 'name' at row 1
时间: 0.001s
这个是我写存储过程发生的,还有就是插入中文数据都会这样子。
2.我解决思路(临时的)
--查看表信息
show create table beauty;
CREATE TABLE `beauty` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(20) DEFAULT NULL,
`phone` varchar(15) CHARACTER SET latin1 DEFAULT NULL,
`birth` date DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `phone` (`phone`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
--从上面的表信息可以看到 表(beauty)的字符集是CHARSET=utf8 ,但是列(phone)的字符集是 (Latin1)
so。
问题出在 mysql 列的编码格式显示为Latin1
--修改表的编码格式
ALTER TABLE wp_comments DEFAULT CHARACTER SET utf8;
--修改表中字段的编码格式
alter table 表名 change name name varchar(40) character set utf8;
---查询
show full columns from beauty;
--表字段字符集是发生改变了 插入表数据没有问题了 但是存储过程执行还是报原来的错误。
所以有没有人遇到过这个问题 求解 求解
修改MySQL bin目录 同目录下的my.ini文件的两个参数
default-character-set=utf8
character-set-server=utf8
重新建一个相同结构的表,建表时设置字符集为utf-8编码。
这个是你安装的的时候没有指定字符导致的,把数据库字符的参数改了就好了
linux下找 /etc/my.cnf 文件
下面三个标字符后面分别添加如下几句话
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
然后重启数据库就好了