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版本還需要進一步的實驗。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM