天天看点

mysql5.7中文乱码问题

查看当前mysql使用的字符集

    show variables like 'character%';

    结果解释:

        character_set_client:客户端请求数据的字符集

        character_set_connection:客户端与服务器连接的字符集

        character_set_database:数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将默认使用配置上的字符集

        character_set_results:返回给客户端的字符集(从数据库读取到的数据是什么编码的)

        character_set_server:为服务器安装时指定的默认字符集设定。

        character_set_system:系统字符集(修改不了的,就是utf8)

        character_sets_dir:mysql字符集文件的保存路径

    当数据库是utf8字符集,客户端是gbk造成中文乱码时解决方法:(其他字符集问题类推)

        临时:set names gbk  (会将character_set_client,character_set_connection,character_set_results临时修改为gbk)

        永久:修改配置文件my.cnf中(如果配置文件中没有可以手动添加)

            [client]

            default-character-set=gbk

            作用于外部的显示(只是想解决显示乱码,修改这个就行)

            ​

            [mysqld]

            character_set_server=gbk

            作用于内部,会作用于创建库表时默认字符集(一般建议不要修改)

    修改数据库字符集sql命令:

        alter database dbname default character set 字符集;

    修改数据表字符集sql命令:

        alter table tbname default character set 字符集;

继续阅读