PDOException: SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
万恶的 MySQL 默认创建的密码为空的 root 账户,这个坑踩了很多次,很容易忽视的一个问题。
这种设计的奇特之处在于,这种不需要密码的空账户,使用 mysql 命令登录,不论输入密码与否,不论输入什么密码,都能成功进入数据库。一些其他的语言数据库驱动则不适用这个,无需密码的账户,输入了哪怕是空密码,也无法访问到数据库,这样的报错,一下子难找出来。
So,谁的问题,是语言的 MySQL 驱动设计问题,还是数据库的问题?