MySQL修改 /etc/my.cnf 資料庫的預設編碼

在使用 SQLAlchemy 連到 MySQL 上create 出來的 table, 預設都是

DEFAULT CHARSET=latin1

即使 SQLAlchemy 在設定 echo=True, 有看到SQLAlchemy有去設定 connection 的 Charset=’utf-8′, 結果 table 出來還是 latin1

 

SQLAlchemy 官方文件:

MySQL
http://docs.sqlalchemy.org/en/latest/dialects/mysql.html

Engine Configuration
http://docs.sqlalchemy.org/en/latest/core/engines.html


Mysql 看 create table 句子:

mysql> show create table device;

結果:

| device | CREATE TABLE `device` (
 `UDID` varchar(60) NOT NULL,
 `IP` varchar(20) DEFAULT NULL,
`queue` blob,
 PRIMARY KEY (`UDID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

 


解法,修改 MySQL Server 的系統設定檔:

修改 /etc/my.cnf:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_BACKSLASH_ESCAPES

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *