由于要做一个测试,需要用到本地mysql,打开phpMyAdmin,输入用户密码后显示
Cannot log in to the MySQL server
怀疑是自己忘记了密码,于是到终端通过以下命令重设root密码
/usr/local/mysql/bin/mysqladmin -u root -p password
但是显示一下错误信息
/usr/local/mysql/bin/mysqladmin:connecttoserver at'localhost'failed
error:'Access denied for user 'root'@'localhost' (using password: NO)'
通过Google,找到一种解决方法
sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables
mysql-u root
mysql>UPDATEmysql.userSETauthentication_string=PASSWORD('password')WHEREUser='root';
mysql > FLUSH PRIVILEGES;
然后敲入mysql -uroot -p,输入新设的密码后顺利进入mysql命令模式。重新回到phpMyAdmin,输入用户密码后顺利进入。本以为问题就这样解决了,但点击数据库按钮后自动退到登录界面,输入相同的用户密码后显示
Cannot log in to the MySQL server
终端下敲入mysql -uroot -p,输入密码后显示
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
彻底懵逼了。几乎翻遍了所有的技术论坛,所有的解决方案都是到此为止,没有人遇到过我这样的情况。
从头分析一下整个过程,在单纯的命令模式下无论怎么折腾都没有问题,但通过phpMyAdmin登录一次后就发生了异常。问题很可能是出现在phpMyAdmin,而不是MySQL本身。为了验证这一想法,删除了phpMyAdmin 整个目录,重新下载了一个全新的版本,安装并重建本地数据库,问题果然解决了。这个问题本来可以更早一些解决,但由于习惯了从网络直接获取答案,在搜索引擎及技术论坛上花了太多时间,反而不愿从问题本身去进行分析。