As a powerful open source database, MySQL is widely used in most applications in all walks of life. Character set setting is a very important issue when using MySQL. This article will introduce how to set the MySQL character set to help developers use the MySQL database correctly.
1. The concept of character set
Character set is a specification about the mapping relationship between codes and characters. It specifies the encoding method of computer characters. Character sets may have different settings in different database systems, and different character sets have different characteristics and advantages. For example, when processing Chinese characters, GB2312/GBK/GB18030 has advantages over Latin1/Latin7.
In MySQL, character set refers to the encoding of character data in databases, tables, and columns. In layman's terms, a character set refers to the way used to store and process characters and strings.
The character sets supported in MySQL mainly include the following: ASCII, GBK, GB2312, UTF-8, UTF-16 and ISO-8859, etc. Among them, UTF-8 is the most commonly used character set in MySQL because It supports multiple languages, has flexible encoding formats, saves space and other benefits.
2. How to set the MySQL character set
In the MySQL database, you can query the character set supported by the database through commands Character set, the method is as follows:
SHOW CHARACTER SET;
This command can list the various character sets available for MySQL, for example:
Charset | Description | Default collation | Maxlen |
---|---|---|---|
big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
DEC West European | dec8_swedish_ci | 1 | |
DOS West European | cp850_general_ci | 1 | # #hp8 |
hp8_english_ci | 1 | koi8r | |
koi8r_general_ci | 1 | latin1 | |
latin1_swedish_ci | 1 | ##latin2 | |
latin2_general_ci | 1 | swe7 | |
swe7_swedish_ci | 1 | ##ascii | US ASCII |
1 | ##ujis | EUC-JP Japanese | |
3 | sjis | Shift-JIS Japanese | |
2 | hebrew | iso-8859-8 Hebrew | |
1 | ##tis620 | TIS620 Thai | tis620_thai_ci |
##euckr | EUC-KR Korean | euckr_korean_ci | |
koi8u | KOI8-U Ukrainian | koi8u_general_ci | |
##gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
##greek | iso-8859-7 Greek | greek_general_ci | 1 |
cp1250 | Windows Central European | cp1250_general_ci | 1 |
gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
latin5 | iso-8859-9 Turkish | latin5_turkish_ci | 1 |
armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
cp866 | DOS Russian | cp866_general_ci | 1 |
DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 | |
Mac Central European | macce_general_ci | 1 | |
Mac West European | macroman_general_ci | 1 | |
DOS Central European | cp852_general_ci | 1 | |
iso-8859-13 Baltic | latin7_general_ci | 1 | |
UTF-8 Unicode | utf8mb4_general_ci | 4 | |
Windows Cyrillic | cp1251_general_ci | 1 | ##utf16 |
utf16_general_ci | 4 | ##utf16le | |
utf16le_general_ci | 4 | cp1256 | |
cp1256_general_ci | 1 | cp1257 | |
cp1257_general_ci | 1 | utf32 | |
utf32_general_ci | 4 | binary | |
binary | 1 | geostd8 | |
geostd8_general_ci | 1 | ##cp932 | SJIS for Windows Japanese |
2 | ##eucjpms | UJIS for Windows Japanese | |
3 |
When we create a new MySQL database, we can set the default character set of the database, so that the character set of all tables in the database will be used the character set. The specific steps are as follows: 2.1 First check the character sets supported by MySQL mysql> SHOW CHARACTER SET; 2.2 When creating a new database, add a character set setting Define CREATE DATABASE new_db CHARACTER SET utf8; or CREATE DATABASE new_db DEFAULT CHARACTER SET utf8; where utf8 is one of the commonly used character sets.
In order for the fields of the table to store and display data correctly, we need to set the character set for the table. In MySQL, the character set of a table can be set when creating the table. If the table has been created, you can also modify the table through the Alter command. 3.1 Set the character set when creating the table CREATE TABLE new_table ( Among them, ENGINE=InnoDB is used to set the storage engine of the table, and CHARSET=utf8 is used to set the default character set of the table. . 3.2 Modify the character set of the table ALTER TABLE old_table CONVERT TO CHARACTER SET utf8; or ALTER TABLE old_table MODIFY COLUMN name VARCHAR(50) CHARACTER SET utf8; Among them, the CONVERT TO command is used to modify the default character set of the table, and the MODIFY COLUMN command is used to modify the character set of a column in the table.
When connecting to the MySQL server, you can also set the character set for the operation. This character set setting is often called the "client character set" and refers to the character set of data transmitted in the client. 4.1 View the character set of the current connection mysql> SELECT @@character_set_connection; 4.2 Modify the character set of the connection SET character_set_connection = utf8; or mysql --default-character-set=utf8 -u root -p Among them, the SET command can modify the default character set of the connection, --default-character The -set command can specify the client character set.
In some cases, you may need to open other character set settings of MySQL to handle some rare data storage and conversion Scenes. At this time, you may need to modify the MySQL configuration file - my.cnf file. Modifying this file may require administrator rights. The modification method is as follows: 5.1 Find the my.cnf file In Linux, the my.cnf file is usually stored in the /etc/my.cnf or /etc/mysql/my.cnf directory . In Windows, the my.cnf file is usually stored in the installation directory of the MySQL database. 5.2 Modify the my.cnf file Add the following statement in the my.cnf file: [mysqld] Among them, the character_set_server command is used to set the listed character set, and the init_connect command is used to automatically set the character set when creating a connection.
MySQL is a very popular open source database, and its character set setting plays a very important role. Correctly setting the character set of MySQL ensures normal reading, writing and storage of data. In this article, we introduce the basic concepts of MySQL character sets, how to set character sets when creating databases, tables, and connections, and how to modify the my.cnf file to enable more character set settings. This knowledge can help developers better use MySQL. |
The above is the detailed content of mysql set character set. For more information, please follow other related articles on the PHP Chinese website!