mysql中中文问题,mysql 显示中文问题

从网上查找资料都说是要配置 sudo vi /etc/mysql/my.cn,但是打开文件之后是这样的:

b9dbcb7c8fa7

Screenshot from 2017-02-14 13-10-25.png

原来的配置文件变成了包含目录结构,于是在上面提到的两个目录里找找,很快就能找到配置文件原来是:/etc/mysql/mysql.conf.d/mysqld.cnf

用管理员权限编辑: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf,打开后时这样的:

b9dbcb7c8fa7

Screenshot from 2017-02-14 13-13-21.png

在[mysqld]下面添加:

character-set-server=utf8

而不是:

default-character-set=utf8

:wq保存后,重启MySQL服务:

service mysql restart

在mysql的shell交互中输入:

show variables like 'character%';’

显示如下:

b9dbcb7c8fa7

Screenshot from 2017-02-14 13-21-01.png

但是还是无法插入中文。

mysql> insert into users values(88,'中文');   ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column 'username' at row 1

这时尝试更改users表的username的字符集。

mysql> alter table users modify username char(20) character set gbk;   ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'username' at row 1

因为表中已经有数据,所以更改username字符集的操作没有成功

清空users表中的数据

清空表中数据:

mysql> truncate table users;   Query OK, 3 rows affected (0.01 sec)

从新更改user表中username的字符集

mysql> alter table users modify username char(20) character set gbk;

Query OK, 0 rows affected (0.06 sec)

Records: 0 Duplicates: 0 Warnings: 0

这时再插入中文字符,插入成功。

```

mysql> insert into users values(88,'中文');

Query OK, 1 row affected (0.01 sec)

mysql> select * from users;

+--------+----------+

| userid | username |

+--------+----------+

| 88 | 中文 |

+--------+----------+

1 row in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值