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.
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!