Home  >  Article  >  Database  >  Mysql Chinese garbled solution

Mysql Chinese garbled solution

藏色散人
藏色散人Original
2020-11-03 11:06:334855browse

Solution to mysql Chinese garbled code: 1. Find the my.cnf file in the Linux environment and modify the encoding; 2. Modify the my.ini file under Windows; 3. Forcibly set the character set during use coding.

Mysql Chinese garbled solution

Recommended: "mysql video tutorial"

1. Introduction

MySQL defaults to latin1 (actually ISO-8859-1) character set. This obviously does not meet our needs, so we adjusted it to the UTF8 character set to be compatible with most character sets.

1. First execute two SQLs to detect the current MySQL default character set encoding:

Sql command:

mysql>show variables like "%colla%";

Sql command:

mysql>show variables like "%char%";

2. Modify the character set to UTF-8

You need to modify the MySQL configuration file my.cnf file, and the Windows environment is my.inidocument.

Usually in linux environmentmy.cnfThe file is located in/etc/mysql/my.cnf(/etc/my.cnf ) path, but due to different installation versions or system environments, we may not be able to find the file in this directory

1. Modification method under Linux

Modify the mysql configuration file, because the newly installed mysql may not have my.cnf under etc

This needs to be created by yourself one. Find a my-medium.cnf file and copy it to the etc folder. The command is: cp /usr/share/doc/MySQL-server-5.5.24/my-medium.cnf /etc/my.cnf

Shell code:

#echo Modify my.cnf file

#sudo vi /etc/my.cnf

Under [client] Add code:

default-character-set=UTF8

Add code under [mysqld]:

character_set_server=utf8

Add the code under [mysql]:

default-character-set=utf8

Some images are as follows:

Restart the mysql database after the modification is successful.

Shell command:

service mysql restart

Sometimes the database service mysql start starts successfully, but you can only use the mysql command at root. It may be because the firewall is not closed. Use The following command solves the problem:

service iptables stop

Then query the character set

show variables like '%character% ';

show variables like "%colla%";

The successful image is as follows:

2. Modification method under Windows

Change the my-default.ini in the MySQL installation directory to the my.ini file

[client]Node

default-character-set=utf8 (Add)

[mysql]Node

default-character-set=utf8 (Modify)

[mysqld]Node

character_set_server=utf8 (Modify)

Use after modification

net stop mysql

net start mysql

Restart the mysql service

Then query the character set:

show variables like '%character%';

show variables like " %colla%";

3. Forcibly set the character set encoding during use
In order to ensure that the character set is completely unified, a unified character set must be forcibly set when building tables and databases.
In addition, in order to ensure nothing goes wrong when connecting to MySQL through JDBC, the following parameters need to be added to the connection string:

jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF- 8

The above is the detailed content of Mysql Chinese garbled solution. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn