使用Ubuntu在安装好MySQL数据库之后,如果直接创建数据库,再创建数据表,那么是无法向字段插入中文的,会报Incorrect string value错误。
c实现编码设置的两种方法:
(1)动态设置
创建数据库:
CREATE DATABASE PyDB
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
选择此数据库:
USE PyDB;
创建表:
CREATE TABLE PyTable (
username VARCHAR(10),
useraddr VARCHAR(10)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
(2)改变默认编码
在mysql下,先执行命令:SHOW variables LIKE '%char%';
查看数据库默认编码是latin1。
以root身份更改mysql的配置文件
在/etc/my.cnf 或 /etc/mysql/my.cnf 添加以下指令并保存:
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
然后重启mysql:service mysql restart
再次查看:SHOW variables LIKE '%char%';
可以看到编码已经是UTF8。