项目使用Express、sequelizejs、MySQL作为基础开发工具。本地开发运行正常,但是到了生产环境,发现数据库存的是中文,而且有乱码。其实乱码的问题很容易猜测可能是字符集的问题,然后查数据库发现没有问题。咨询过其他人,可能是保存的时候没有转换成对应的字符集。查询sequelizejs配置,指定一个。发现还是解决不了。constsequelize=newSequelize('database','username','password',{dialect:'mysql',define:{charset:'utf8',dialectOptions:{collat??e:'utf8_general_ci'}}})后来发现是这样的是MySQL默认字符集的问题。操作如下。##输入MySQLmysql-uroot-p##输入密码##查看各种默认配置showvariableslike'%char%';##会有如下表##有的utf8可能是其他值,然后我们慢慢修改##setcharacter_set_client=utf8##也可以通过上面的方法设置,但是重启mysql会恢复原状点+--------------------------+--------------------------+|变量名|值|+--------------------------+----------------------+|字符集客户端|编码||字符集连接|编码||字符集数据库|编码||字符集文件系统|二进制||字符集结果|编码||------------------+----------------------------+##退出数据库vi/etc/my.cnf##编辑此配置文件##在相应区域添加或添加[mysqld]character-set-server=utf8[client]default-character-set=utf8[mysql]default-character-set=utf8##重启mysql服务##再看char,都是uft8超赞原读:LinuxMySQLutf8保存中文乱码
