登录时一直报一下错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
通过免密登录mysql:
vim /etc/my.cnf
在[mysqld]范围下添加
skip-grant-tables #跳过密码登录
保存退出,重启Mysql
service mysqld restart
登录时提示输入密码直接回车
mysql -uroot -p
查看root用户是否还存在:
use mysql;
select user from user where user='root';
1.如果root用户还在,就直接修改root用户的密码。
UPDATE mysql.user SET password = password('newpassword') WHERE user = 'root';
或者
update mysql.user set authentication_string=password('newpassword') where user='root';
2.如果root用户没有了,创建root用户并设置密码;(生产环境不推荐)
insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';
update user set host='localhost',select_priv='y', insert_priv='y',update_priv='y', alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',process_priv='y',file_priv='y',grant_priv='y',references_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';
flush privileges;
修改新密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
quit;
重启mysql
service mysqld restart
将/etc/my.cnf文件中的skip-grant-tables删掉或者注释掉。
再次登录,成功。