明天和意外不知道哪个先来
最近在阿里云上部署环境,装了Mysql5.7。就在远程连接通过,正准备部署项目的时候,出现了如题的错误提示。
jdbc:log4jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
Mysql Access denied for user 'root'@'localhost' (using password: YES)
一顿操作猛如虎一看error不会撸
- 怀疑密码错误,重新验证了密码问题。并且远程可以登录云端数据库,排除密码问题;
- 权限问题?grant所有的权限了,一开始还忘记flush,最后fluash也没有救我;
- 密码存在特殊字符比如“@”,换成了字母+数字,还是不行……
是哪个天使大姐在我天灵盖一杵
就在崩溃的边缘,想起曾在编码问题上受过伤,用户输入的emoji保存后成了乱码,原因是mysql的utf8不是真正的UTF-8,因为历史原因有人偷懒用3位表示了utf8,但必须要用utf8mb4才能保存emoji👿。所以最后怀疑是编码问题,于是不急不慢,倒一杯清茶,开始最后的一次挣扎:
$ vim /etc/my.cnf
添加如下
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
怀着忐忑的心情,最终成功运行了。
黎明前最黑暗
就差想着阿里云能一键构建开发环境了,真的一个下午都处于一种暴躁的状态,完全没法写if-else呢,搞完得加快进度鸭。