【mysql的表里面中文显示乱码 _数据库 】 | IT修真院·坑乎
问题已收录 mysql的表里面中文显示乱码
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(1)
数据库
详细描述
错误截图
编辑于2024-11-23
  • [深圳|结业弟子]JAVA-陈哲明
    0
    查询字符集
    show variables like 'char%';
    会发现  database 的编码方式是latin1 并且server的编码方式也是latin1
    database的编码方式如果没有指定,默认使用的就是server 的编码方式所以你会发现这两个字符集是一样的。
    然后在Mysql中进行了对database和server的编码方式的修改
    set character_set_database=utf8;
    set character_set_server=utf8;
    结果重启Mysql后发现字符集依然是原来的lantin1
    最后总结了一下,才测试正确,下面是配置方法。
        1.首先查看etc安装目录下有没有my.cnf文件
    cd /etc
    ls -l | grep my.cnf
    如果存在可以跳过第二步
        2.my.cnf不存在需要到Mysql配置文件路径下复制一个文件过来,配置文件路径在/usr/share/mysql下
    我复制的是my-default.cnf文件,在/etc中复制文件过来,将文件改名为my.cnf ,执行以下命令
    cd /etc
    cp /usr/share/mysql/my-default.cnf my.cnf
    3.使用vi编辑器打开my.cnf加入下面几段话
    建议先对文件进行备份,不过因为文件本来就是从/usr/share/mysql中复制过来的,也可以不用备份,然后打开
    cp my.cnf my.cnf.bak
    sudo vi my.cnf
    在[mysqld]最下面加入下面几句话
    default-storage-engine=INNODB
    character-set-server=utf8
    collation-server=utf8_general_ci
    然后保存退出
    修改后如下:
    发现database和server的字符集都变成了utf8,无论怎么修改,重启后字符集都是utf8,证明你成功了。
    如果设置到这里还不行,再进入一下/etc/mysql/mysql.conf.d找到mysqld.cnf文件
    cd /etc/mysql/mysql.conf.d
     vim mysqld.cnf
    然后在mysqld.cnf中[mysqld]下面加入这句话
    character-set-server=utf8
    然后再重启下Mysql


    编辑于2018-09-28