官术网_书友最值得收藏!

Setting UTF-8 as the default encoding for MySQL configuration

MySQL is the most popular open source database. In this recipe, I will tell you how to set UTF-8 as the default encoding for it. Note that if you don't set this encoding in the database configuration, you might get into a situation where LATIN1 is used by default with your UTF-8 encoded data. This will lead to database errors whenever symbols such as € are used. Also, this recipe will save you from the difficulties of converting the database data from LATIN1 to UTF-8, especially when you have some tables encoded in LATIN1 and others in UTF-8.

Getting ready

Make sure that the MySQL database management system and the MySQLdb Python module are installed and you are using the MySQL engine in your project's settings.

How to do it…

Open the /etc/mysql/my.cnf MySQL configuration file in your favorite editor and ensure that the following settings are set in the sections: [client], [mysql], and [mysqld], as follows:

# /etc/mysql/my.cnf
[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

If any of the sections don't exist, create them in the file. Then, restart MySQL in your command-line tool, as follows:

$ /etc/init.d/mysql restart

How it works…

Now, whenever you create a new MySQL database, the databases and all their tables will be set in UTF-8 encoding by default.

Don't forget to set this in all computers where your project is developed or published.

主站蜘蛛池模板: 平凉市| 巴东县| 天台县| 永兴县| 榆社县| 安平县| 白河县| 墨脱县| 于都县| 台湾省| 驻马店市| 邳州市| 崇州市| 高青县| 正阳县| 静安区| 康定县| 石柱| 来凤县| 花垣县| 同心县| 苏尼特右旗| 长武县| 凤城市| 五大连池市| 西平县| 德令哈市| 丰县| 平潭县| 元氏县| 西青区| 阜城县| 玉树县| 象山县| 宁波市| 北川| 海口市| 瑞昌市| 霍城县| 威远县| 象山县|