Mysql修改字符集

当插入中文数据变成问号,通常是因为字符集未设置为UTF8。检查MySQL配置,显示当前字符集为UTF8,但修改配置文件my.cnf并在/etc/下创建my.cnf,确保包含utf8设置。重启MySQL后,新数据库将使用UTF8,但原有库表字符集不变。要更改已生成库表字符集,需使用ALTER DATABASE和ALTER TABLE命令。务必在安装MySQL后立即调整字符集。
摘要由CSDN通过智能技术生成

插入中文数据变成问号,一般都是因为字符集没有设置成utf8的原因

1,查看字符集

  • show variables like ‘character%’;
  • show variables like ‘%char%’;
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

2,修改配置文件my.cnf

  • 在/usr/share/mysql/ 中找到my.cnf的配置文件,
  • 拷贝其中的my-huge.cnf 到 /etc/ 并命名为my.cnf
  • mysql 优先选中 /etc/ 下的配置文件
  • MySQL5.7配置文件位置是/etc/my.cnf或者/etc/mysql/my.cnf,如果字符集不是utf-8直接进入配置文件修改即可。
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
  • 注意:安装MySQL完毕之后,第一件事就是修改字符集编码。

3,重新启动mysql

  • 但是原库的设定不会发生变化,参数修改之对新建的数据库生效

4,已生成的库表字符集如何变更

  • 修改数据库的字符集
mysql> alter database mytest character set 'utf8';
  • 修改数据表的字符集
mysql> alter table user convert to  character set 'utf8';

但是原有的数据如果是用非’utf8’编码的话,数据本身不会发生改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安澜仙王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值