MySQL 中的 ERROR 1366 (Mac)

在向一个表中插入中文数据时出错了,显示

ERROR 1366

查了一下,是编码格式的问题。解决方案如下:

首先,在终端里进入 MySQL 的命令行界面后,输入:

status

我的显示如下:

--------------
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.7.9, for osx10.9 (x86_64) using  EditLine wrapper

Connection id:      5
Current database:   db01
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.7.9 MySQL Community Server (GPL)
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /tmp/mysql.sock
Uptime:         1 hour 37 min 0 sec

Threads: 1  Questions: 83  Slow queries: 0  Opens: 116  Flush tables: 1  Open tables: 102  Queries per second avg: 0.014
--------------

上面的

Db     characterset:    latin1

是问题所在。在终端中输入:

alter database db01 character set utf8;

成功之后再查看:

--------------
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.7.9, for osx10.9 (x86_64) using  EditLine wrapper

Connection id:      5
Current database:   db01
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.7.9 MySQL Community Server (GPL)
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /tmp/mysql.sock
Uptime:         1 hour 37 min 0 sec

Threads: 1  Questions: 83  Slow queries: 0  Opens: 116  Flush tables: 1  Open tables: 102  Queries per second avg: 0.014
--------------

然而这只是改了这个数据库的默认,说的是你如果新建一张表,或者插入新的字符属性时它的编码会是 utf8 ,但是原来的字符属性还是 latin1 ,所以还是没有解决问题。

这个时候只用再把原来的属性修改一下就好了:

alter table book change title title varchar(50);

这个时候再插入新的数据时,title 属性的值就可以接受中文了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值