服务器上刚装的 mysql 结果一连接就出了 bug,尴尬……
其中安装教程用的是 CentOS 7 安装 MySQL ,输入登录命令 mysql -u root -p,然后,然后就直接挂了。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
接下来参考网上教程,建议修改配置文件,跳过密码权限验证,修改密码,再注释掉刚才的修改。
- 进入 /etc/my.cnf 文件,找到 [mysqld] ,在其后面添加 skip-grant-tables
vi /etc/my.cnf
- 重启mysql
# systemctl restart mysqld
另:
查看mysql状态
# systemctl status mysqld
停止mysql服务
# systemctl stop mysqld
- 直接在界面中输入 mysql 免密登录数据库,然后输入一下sql语句更改密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'My_new_password@123!';
- 一般执行完上面一句会报如下错误,直接在 mysql 中继续输入 flush privileges。
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
- 再次重置密码即可
- 回到 /etc/my.cnf 文件,找到 [mysqld] ,将其后面添加的 skip-grant-tables 删除或者直接注释掉。
- 重启mysql
# systemctl restart mysqld
- 重新登录数据库,搞定
# mysql -u root -p
参考文章:【1】centos7下mysql初始密码修改的两种方法
【2】ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen - 小浪鼓 - 博客园
【3】解决mysql出现ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES/NO)【Mac】