一、前言
本帖方法只适用于普通用户无法登录,但root用户可以登录的情况。
今天将war包放入linux后,运行报错,经过检查发现是数据库连接不上。奇怪的是,用户名和密码都是正确的,所以有了以下发现。
二、解决问题
如果遇到普通用户无法登录,但root用户可以登录的情况下,进行如下操作。通过root账户,输入用户名密码后登入mysql。
use mysql;
select user,host,plugin from user;
如果发现root的plugin显示的是unix_socket,说明本方法有效,如果不是,再去百度吧。接下来输入语句。
update user set authentication_string=PASSWORD('root'),plugin='mysql_native_password' where user='root';
语句一定要有authentication_string=PASSWORD('root'),否则root的密码会置空,下次登录就得无密码登录。执行如下命令:
flush privileges;
service mysql stop;
service mysql start;
切换到普通用户测试。
如果不知道root密码,请查看这里