In Linux, MySQL 5.5 modifies the character set encoding to utf8 (completely solves Chinese garbled characters)

Source: Internet
Author: User

PS: yesterday, a colleague encountered a Chinese garbled MySQL 5.5 problem and asked me to solve it. Solve the problem. No one said on the Internet. I will summarize it.

1. log on to MySQL and use show variables like 'character % '. The following character set is displayed:

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

The default Character Set of character_set_database and character_set_server is Latin1.

2. The simplest and perfect modification method is to modify the character set key value in MySQL's my. CNF file (pay attention to the configuration field details ):

1. Add default-character-set = utf8 to the [client] field, as shown below:

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8

2. Add character-set-Server = utf8 to the [mysqld] field as follows:

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8

3. Add default-character-set = utf8 to the [MySQL] field, as shown below:

[mysql]
no-auto-rehash
default-character-set=utf8

After the modification, the Service MySQL restart restarts the MySQL service to take effect. Note: The [mysqld] field is different from the [MySQL] field. No one has reported this on the Internet.

Use show variables like 'character % '; Check that the database encoding has been changed to utf8.

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


4. If all the above changes are garbled, the remaining problems must be on the connection layer. The solution is to execute the following statement (directly at the beginning of the SQL file) before sending the query ):
Set names 'utf8 ′;

It is equivalent to the following three commands:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;


Many other methods on the Internet cannot completely solve this problem, which can be perfectly solved!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.