mysql修改字符集速度_MySQL修改字符集 - osc_9moamff8的个人空间 - OSCHINA - 中文开源技术交流社区...

问题:在终端中向MySQL中写入中文,报错

5158c627529c0d2295edb845c9a92498.png

原因:查询了一下MySQL的字符集

8de21807eebfc057ea34e3b94afe5936.png

错误在于MySQL-server的字符集为latin1,终端的字符集是utf8,所以写入报错

解决: 将MySQL服务器的字符集改为utf8 ,具体方式如下:

方式一:在终端中启动MySQL,然后将需要更改的字符集设置为utf8

set character_set_database=utf8;

set character_set_server=utf8;

方式二:修改MySQL服务器的配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]段落中添加如下两行:

character-set-server=utf8

collation-server=utf8_general_ci

重启MySQL:

service mysql restart

然后登录MySQl,查看数据库字符集设置:

show variables like 'character%';

显示

3c2315f186bc54feba44c08d5c79a303.png

查看字符集排序设置:

show variables like 'collation_%';

显示

4ca6fa96dd3dfd850e582faba5331248.png

以上就大功告成了

方式三:在终端使用命令将具体database的字符集改为utf8

alert database db1 character set utf8;

但是旧table的字符集是没有改变的,将旧table的字符集改变为utf8

alter table tb convert to character set utf8;

注:数据无价,注意备份。

几种方式的比较:

第一种方式只是暂时起作用,新建的库和表是utf8的格式,但MySQL重新启动后就会失效,变成原来的字符集

第二种方式更改的是MySQL服务器的字符集,再创建的数据库和表都是utf8的字符集,但是原来数据库和表的字符集没有改变

第三种方式只能将现有的数据库和表更改为utf8,以及更改为utf8的数据库再创建的表字符集为utf8,但MySQL服务器的字符集没有改变,新建的database格式仍然不正确

每种方式有自己的特点,结合起来用会更好

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值