#1 -> su - root
#1 -> /etc/init.d/mysqld stop
#1 -> mysqld_safe --skip-grant-tables &
#2 -> mysql -uroot -p密码 -h127.0.0.1
#或者
#2 -> mysql -uroot -p密码 -h127.0.0.1 --protocol=tcp
#1和2任选一种方式登陆
>use mysql;
>select host,user from mysql.user;
#删除host为%和127.0.0.1的用户
#>DROP USER 'train'@'%';
#>DROP USER 'train'@'127.0.0.1'
>CREATE USER 'train'@'localhost' IDENTIFIED BY '123456'; #注意添加新用户时需要填写如'train'@'localhost'而不是train就可以的
>flush privileges;
>quit;
#1 -> jobs
#1 -> service mysqld stop
#1 -> kill %1
#1 -> service mysqld start
mysql -u用户名 -p密码
成功解决,因为mysql默认登陆方式为localhost但是一旦出现%的host,mysql会默认用%作为host的方式登陆如root@%,所以无法登陆。