问题

MySQL官方网站提供了诸多免费的数据库操作工具,其中, Workbench是一款免费的极佳可视化数据库管理工具,你只需要下载最新版本,即可随心所欲地管理以往许多其他版本的数据库,当然配合适当的sql脚本更佳。

表操作中,我们经常遇到字符集修改不匹配的问题。例如,MySQL方默认的表字段字符集很可能是latin5_turkish_ci,此时想往表中插入数据就会遇到类似以下的错误提示:

[UPDATE ERROR] - ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xE5\x8F\xB8\xE9\xA9\xAC...' for column 'name' at row 1

我是在使用node.js连接MySQL表测试时出现上述问题的。有关代码如下:

var mysql=require('mysql');
var connection=mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'yourpassword',
    database:'test'
});

connection.connect();

var modSql = 'UPDATE emp1 SET name = ?,age=?,about = ? WHERE code =4';
var modSqlParams = ['李白', 1000,'code4'];
//改
connection.query(modSql,modSqlParams,function (err, result) {
    if(err){
        console.log('[UPDATE ERROR] - ',err.message);
        return;
    }
    console.log('--------------------------UPDATE----------------------------');
    console.log('UPDATE affectedRows',result.affectedRows);
    console.log('-----------------------------------------------------------------\n\n');
});

connection.end();

顺便说一下,WebStorm可以说是进行node.js服务器端开发的最佳工具。在使用“Node.js Express App”模板创建程序框架后,在根目录下创建下面的脚本文件即在启动WebStorm内部的控制台命令行运行上述代码文件:
node updatesql.js

办法

解决上述编码问题的办法有两种途径,一种是在命令行下使用脚本方式,一种是使用上面类似于workbench这种GUI工具更直观地修改。在此仅介绍GUI方式,脚本方式请参考附文有关引用地址。
操作步骤如下:
1) 右键单击表格,选择 “Alter Table”
2) 选中列名,下方“Collation”后可以选择具体字符集
3) 点击“Apply”按钮
参考下图:
使用MySQL Workbench修改表字符集

参考文章

1,https://www.cnblogs.com/zhchoutai/p/7364835.html
2,http://www.jb51.net/article/68856.htm
3,https://www.cnblogs.com/xbq8080/p/6572133.html
4,https://www.cnblogs.com/flowingcloud/p/6235095.html