1 查看字符集
show variables like 'character%';
show variables like '%char%';
看看出现的结果:

默认的是客户端和服务器都用了latin1,所以会乱码。
2 修改
1) 首先应该复制配置文件

2) 进入 etc 中的配置文件中 vim /etc/my.cnf 增加设置字符集的字段
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
# The MySQL server
[mysqld]
port = 3306
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
[mysql]
no-auto-rehash
default-character-set=utf8
3 重启mysql
service mysql stop;
service mysql start;
4 重新连接后重新create databse并使用新建库,然后再重新建表试试 必须新建,只有新建的库和表才生效
5 还是乱码的话就设值init_connect='SET NAMES utf8'
该博客介绍了如何处理MySQL数据库中的字符集乱码问题。首先,通过`show variables like 'character%'`和`show variables like '%char%'`检查当前的字符集设置,发现默认为latin1导致乱码。然后,博主提供了修改方法,包括复制配置文件、编辑/etc/my.cnf添加UTF8字符集设置,并给出详细配置示例。接着,需要重启MySQL服务以应用更改。如果仍有乱码,可以尝试设置`init_connect='SET NAMES utf8'`。最后,建议重新创建数据库和表以确保新字符集生效。

3186

被折叠的 条评论
为什么被折叠?



