MySQL 存储过程的字符集问题_MySQL
程序员文章站
2022-06-16 16:22:16
...
由于存储过程中定义参数时,无法定义其字符集,因此调用存储过程的时候,会默认读取全局变量character_set_server,而且还是只读取mysqld启动时该全局变量的值作为存储过程中默认的传输字符集。因此,如果数据表/字段使用系统默认的字符集(比如latin1)的话,调用存储过程更新一些非英文的字符串字段时,就不会发生问题;但是,如果数据表/字段的字符集不是系统默认的字符集(比如默认是latin1,数据表使用的是utf8),就会出现问题了。解决办法是:在my.cnf(windows下是my.ini),增加一行:
default-character-set=utf8
或者
character-set-server=utf8
也可以。如果只是在mysqld启动之后,在 mysql 命令行中用 SET 语法来更新的话则不起作用。
上一篇: 分享常见的几种页面静态化的方法
下一篇: 怎么安装FFMPEG-PHP
推荐阅读
-
mysql主从同步导致数据同步异常的问题梳理
-
mysql存储过程之循环语句(WHILE,REPEAT和LOOP)用法分析
-
如何将mysql存储位置迁移到一块新的磁盘上
-
MySQL存储时间类型选择的问题讲解
-
MYSQL本地安装以及出现的问题解决
-
win10下MySQL 8.0登录Access denied for user‘root’@‘localhost’ (using password: YES)问题的解决方法
-
php调用MySQL存储过程的方法集合(推荐)
-
MySQL的几种安装方式及配置问题小结
-
Java与MySQL时间戳传递/存储/协调问题--userLegacyDatetimeCode--userTimezone--serverTimezone
-
关于MySQL的时间进位问题浅析