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

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.

主站蜘蛛池模板: 右玉县| 连南| 巨野县| 荥阳市| 锡林郭勒盟| 鹤峰县| 武冈市| 安陆市| 新邵县| 叶城县| 惠东县| 灵寿县| 黄龙县| 奉新县| 五大连池市| 南投市| 大竹县| 游戏| 循化| 平塘县| 宝清县| 会东县| 嘉峪关市| 莱阳市| 光山县| 马山县| 巴楚县| 木里| 绥化市| 余姚市| 福清市| 罗山县| 宝应县| 泾源县| 淮安市| 贵定县| 格尔木市| 蛟河市| 闸北区| 乌拉特中旗| 常山县|