zoukankan      html  css  js  c++  java
  • MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8

    来看看如何解决乱码问题:

    在mysql中默认字符集是latin1,

    想要设置字符集为uft-8,可以在 my.cnf 文件中添加以下设置:

    [client]

     default-character-set=utf8

    [mysqld]

    default-character-set=utf8

    skip-character-set-client-handshake #此处是忽略客户端的字符集,使用服务器的设置

    (skip语句和client中的default选一个)

    当然你可以在建立数据库是规定字符集:

    1 create database db_name default character set utf8 callate utf8-general-ci;

    也可以在链接数据库前设置:

     set names 'utf8';

    重点在红字上,加了skip-character-set-client-handshake,client里面就不用加default了

     show variables like 'characte%';

    +--------------------------+----------------------------+

    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/ |

    +--------------------------+----------------------------+

    但是根据以上的配置过了后,mysql就无法启动了,这是为什么呢?往下看:

    在5.1版本时,为了解决中文乱码问题设置默认字符集为utf8时,在my.ini内的 [mysql] 和 [mysqld] 项中都是写:

    default-character-set=utf8

    到了5.5版本, [mysql] 项内可以这么写, [mysqld] 项内这么写在启动MySQL服务时会有1067错误,经查询发现这里必须要这样写:

    character-set-server=utf8

    目前已知5.1和5.5有这么一个不同之处,且是从5.5的安装版本自动生成的my.ini文件中看出的。配置免安装的5.5版本还需要进一步的实验。

  • 相关阅读:
    LINNX联网配置文件
    linux文件系统配置文件
    linux引导和登录/注销配置文件
    LINUX访问文件配置
    LINUX配置文件介绍
    tcpdump的表达式介绍
    tcpdump命令介绍
    DNS客户端配置文件/etc/resolv.conf
    tcpdump概述
    LINUX普通猫的拔号工具介绍
  • 原文地址:https://www.cnblogs.com/shihaiming/p/5725457.html
Copyright © 2011-2022 走看看