• Mysql 之 编码问题


    学习ThinkPHP时,中文插入乱码;

    1)网页上设置了utf-8;

    2)数据库设置'DB_CHARSET'=>'UTF-8';

    3)Mysql建表用的也是CHARSET=utf8;

    但是结果在Mysql中查看还是乱码。

    查看数据库的编码方式

    mysql> show variables like 'character\_set\_%';
    +--------------------------+--------+
    | Variable_name | Value |
    +--------------------------+--------+
    | character_set_client | latin1 |
    | character_set_connection | latin1 |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | latin1 |
    | character_set_server | latin1 |
    | character_set_system | utf8 |
    +--------------------------+--------+
    7 rows in set (0.24 sec)

    之前以为以下四个保持一致就可以了,但是发现退出mysql再次进入之后,编码方式又变回到latin1。

    set character_set_client=utf8;

    set character_set_database=utf8;

    set character_set_results=utf8;

    set character_set_server=utf8;

    搜索了一下修改的方法,推荐 http://www.jb51.net/article/30104.htm

    1、找到mysql的配置文件,拷贝到etc目录下(可以不用停止mysql服务),这一步很重要

      把/usr/share/doc/mysql-server-5.1.73/my-large.cnf 复制到 /etc/my.cnf

      即用命令:cp /usr/share/doc/mysql-server-5.1.73/my-large.cnf  /etc/my.cnf

      (目录中mysql-server-5.1.73的版本号可能都不太一样,修改以下即可)

    2、打开my.cnf修改编码

      在[client]下增加default-character-set=utf8

      在[mysqld]下增加default-character-set=utf8

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

    3、重新启动mysql

      service mysqld restart

      (虽然此处遇到mysql服务停止失败,但是启动成功,忽略停止失败...)

    4、查看数据库编码

    mysql> show variables like 'character\_set\_%';

    PS:以前都是通过PHP的函数转化后再插入数据库中,现在觉得应该是数据库的编码方面的问题。

    希望越学越顺利~

  • 相关阅读:
    Karen and Game CodeForces
    Array and Segments (Easy version) CodeForces
    Diverse Garland CodeForces
    Nice Garland CodeForces
    Divisors of Two Integers CodeForces
    Two distinct points CodeForces
    Unique Snowflakes UVA
    Codeforces Round #534 (Div. 2)D. Game with modulo-1104-D(交互+二分+构造)
    关于排列组合问题的基础补充
    杭电 rescue(经典广搜)(深搜广搜对比)
  • 原文地址:https://www.cnblogs.com/la-isla-bonita/p/3577575.html
Copyright © 2020-2023  润新知