• 修改mysql字符集


    今天review同事的代码,发现从数据库查找包含中文的记录一概查不出来,将中文插入到数据表后又是“??”这类的乱码,这应该是字符集的问题了。

    1、先看看目前的字符集是什么?

    客户端可运行:

    SHOW VARIABLES

    我的服务端是安装在linux下的,首先进入linux:

    1)输入mysql -u root

    2)输入show variables like 'character%'

    显示结果:

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

    3)找到my.cnf文件

    退出mysql,进入路径 /etc/mysql/my.cnf文件

    输入vi my.cnf

    输入i,进入编辑模式

    添加或替换一下内容:

    [client]

    default-character-set=utf8

    [mysqld]

    default-character-set=utf8

    init_connect='SET NAMES utf8'  (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

    编辑完后,如果想保存退出,则先按 ESC 键,然后输入 :wq ,不想保存的话,则输入 :q!  搞定

    4) 重新启动mysql服务

    输入service mysqld restart

    更多重新启动mysql服务的内容请参见

    http://hi.baidu.com/breezelark/blog/item/d9124622fc7698efd7cae2b2.html

    5)重新查看字符集

    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)


    再次查询和插入,则没有中文乱码的问题了。

  • 相关阅读:
    各大代码托管服务器的分析比较
    《构建之法》读后
    【转】简单的程序诠释C++ STL算法系列之十五:swap
    【转】error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
    C++大会感悟
    一次DDOS攻击引起的安全漫谈
    为npm设置代理,解决网络问题
    Rust 中的类型转换
    Rust 智能指针(二)
    软件设计原则
  • 原文地址:https://www.cnblogs.com/chshnan/p/2566130.html
Copyright © 2020-2023  润新知